如何安装 Nautilus 脚本?

如何安装 Nautilus 脚本?

我找到了一个我想使用的 nautilus 脚本。如何安装它?

答案1

假设您想要安装在浏览 Ask Ubuntu 时发现的以下脚本:

#!/bin/bash
## Sample Script 0.1
## Dependencies: notify-osd

notify-send "Sample nautilus script" "You Selected $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

依赖项

您首先会注意到,许多脚本不会立即运行。有时它们依赖于您可能已安装或未安装的其他软件包。在本例中,我们的脚本依赖于notify-osd,它是 Ubuntu 默认自带的。

在其他发行版中可能并非如此,您必须在使用脚本之前安装依赖项。如果依赖项是官方存储库的一部分,则可以轻松安装它apt-get,例如:

sudo apt-get install notify-osd

设置脚本

现在我们已经满足了所有依赖关系,我们可以继续将脚本复制到我们的系统中。为此,我们首先在脚本文件夹中创建一个新文档,在 Ubuntu 13.04 及更高版本中为~/.gnome2/nautilus-scripts~/.local/share/nautilus/scripts/这是一个隐藏文件夹。为了前往它,您必须打开文件管理器,按CTRL+L并将目录路径粘贴到位置栏中。

接下来我们将通过右键单击并选择创建一个新的空文档创建新文档空文档。您可以随意命名,但要注意:您选择的标题将决定脚本条目稍后在 nautilus 上下文菜单中的显示方式。因此,最好为文档选择一个描述性名称:

在此处输入图片描述

在您选择的文本编辑器中打开新文档,然后将上面的代码框的内容复制并粘贴到其中。保存并退出文本编辑器。

使其可执行

此时,您的脚本已正确设置,但仍无法运行,因为系统尚未将其识别为可执行文件。要使其可执行,请右键单击您的文件并转到特性权限. 勾选允许作为程序执行并关闭对话框:

在此处输入图片描述

用法

现在,您应该可以从 Nautilus 上下文菜单访问该脚本。只需右键单击您选择的文件,然后前往脚本-->脚本名称(这里:示例脚本)。点击该条目即可对你选择的文件执行脚本:

在此处输入图片描述

为脚本分配键盘快捷键

可以通过编辑 Nautilus 的键盘加速器文件来指定 Nautilus 脚本的键盘快捷键。在 Ubuntu 12.04 及以下版本中,此文件位于 下~/.gnome2/accels/nautilus。在较新的版本中,此文件已移至~/.config/nautilus/accels。请注意,您的脚本只有在重新启动 Nautilus 后才会出现在加速器文件中(执行nautilus -q,然后单击其启动器再次启动 Nautilus)。

加速器文件的语法乍一看可能有点让人困惑,但实际上相当简单。例如,请看以下摘录:

; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
; (gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

每行代表一个键分配。第一个双引号部分指定操作,第二个部分指定分配的组合键。以分号开头的行是注释行,当前处于非活动状态。

为了给脚本分配快捷键,您必须在此文件中搜索脚本的名称,并通过删除分号来取消注释相应的行。然后继续输入您想要分配的键盘快捷键。

这些是可用的修饰符及其对应的键代码:

  • CTRL=<Primary>
  • ALT=<Alt>
  • SHIFT=<Shift>

您可以通过以下方式查找所有其他按键的有效按键代码使用 xev

您必须按照以下方式修改上面的部分以将示例脚本分配给ALT+ SHIFT + S

; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
(gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "<Alt><Shift>s")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")

在 Ubuntu 12.04(可能还有更高版本)上,Nautilus 有时会在您进行任何更改之前覆盖加速器文件。因此,在 Nautilus 未运行时执行所有更改可能是个好主意(nautilus -q)。无论哪种方式,您将要必须重新启动 Nautilus 才能看到更改。

自动安装

此 Nautilus 脚本将自动为您安装 Nautilus 脚本。请查看注释以了解幕后发生了什么:

#!/bin/bash
# AUTHOR:       Glutanimate (https://askubuntu.com/users/81372/)
# LICENSE:      GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# NAME:         Nautilus Scripts Installer
#
# DESCRIPTION:  This script will install Nautilus scripts on Ubuntu 12.04 and above.
#               Note: scripts of the same name in the destination folder will be
#               overwritten without warning


# general purpose notification function
gui_notify(){
    notify-send -i gnome-app-install "Nautilus Scripts Installer" "$1"
}


# check if any files selected
if [[ -z "$@" ]]
  then
      gui_notify "Error: No files selected."
      exit 1
fi


RELEASE="$(lsb_release -r | cut -f2)"   # detect Ubuntu release

if [[ "$RELEASE" = "12.04" ]]           # set script folder accordingly
  then
      ScriptFolder="$HOME/.gnome2/nautilus-scripts"
  else
      ScriptFolder="$HOME/.local/share/nautilus/scripts/"
fi


for Script in "$@"; do

  ScriptFilename="${Script##*/}"                # get filename via bash string manipulation

  cp "$Script" "$ScriptFolder/"                 # Move script to destination
  chmod u+x "$ScriptFolder/$ScriptFilename"     # Make it executable for the user

done

gui_notify "The following scripts have been installed: $@"

作为旁白:这是 nautilus 脚本我曾经录制过这个答案的截屏。

相关内容