如何安装Nautilus脚本?

我发现了一个我想使用的鹦鹉螺脚本。 我该如何安装?

假设您要安装在浏览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并将目录路径粘贴到位置栏。

接下来,我们将通过右键单击并选择Create new DocumentEmpty Document创建一个新的 空文档 。 将它命名为您想要的任何名称,但要注意:您选择的标题是脚本条目稍后将如何显示在nautilus上下文菜单中。 因此,最好为文档选择一个描述性名称:

在此处输入图像描述

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

使其可执行

此时,您的脚本已正确设置但仍无法正常工作,因为系统尚未将其识别为可执行文件。 要使其可执行,请右键单击您的文件,然后转到“ 属性” →“ 权限” 。 设置允许执行为程序的复选标记并关闭对话框:

在此处输入图像描述

用法

您现在应该可以从nautilus上下文菜单中访问该脚本。 只需右键单击您选择的文件,然后转到脚本 – > 脚本名称 (此处为: 示例脚本 )。 单击该条目以对您选择的文件执行脚本:

在此处输入图像描述

为脚本分配键盘快捷键

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

加速器文件的语法起初可能看起来有点压倒性,但它实际上非常简单。 看看这段摘录,例如:

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

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

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

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

  • CTRL =
  • ALT =
  • SHIFT =

您可以使用xev找到所有其他密钥的有效密钥代码 。

以下是您必须修改上述部分以将示例脚本分配给ALT + SHIFT + S的方法

 ; (gtk_accel_path "/ShellActions/ZoomInAccel2" "KP_Add") ; (gtk_accel_path "/ShellActions/TabsNext" "Page_Down") (gtk_accel_path "/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "s") ; (gtk_accel_path "/ShellActions/Search" "f") ; (gtk_accel_path "/ShellActions/Forward" "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: $@" 

暂且不说: 这是我用来记录这个答案的截屏video的鹦鹉螺剧本 。