如何在nautilus的右键菜单中添加项目(没有Nautilus-Actions)?

我正试图给我的图像上传器一些右键单击 – >上传function。 目前我使用nautilus-scripts文件夹,但是将菜单项放在一个不明显的“Scripts”项后面。

我试过查找它但我只能找到引用nautilus脚本或Nautilus Actions的人(这不是我想要的包装)。

你可以创建一个Nautilus扩展,如下所述:

http://saravananthirumuruganathan.wordpress.com/2010/08/29/extending-nautilus-context-menus-using-nautilus-actions-scripts-and-python-extensions/

Nautilus是GNOME最常用的文件管理器之一。 其受欢迎的原因之一是其可扩展的体系结构,允许开发人员编写脚本来定制它。 即使你是一个命令行人,扩展Nautilus也会大大提高生产力。 在这篇文章中,我将讨论Nautilus可以扩展的多种方式以及每种方法的相对优点。

扩展Nautilus的第一步是找到一系列繁琐的行动(至少不是直截了当的) – 需要额外点击或切换到终端才能完成的任务。 下一步是确定是否有可用于自动执行任务的命令行工具,或者可以通过其他代码完成任务 – 再次,因为您正在扩展Nautilus,所涉及的任务必须与文件或文件夹相关。 例如,以管理员身份打开文件是一项“相关”任务,但是从Nautilus开始核战争不是!

非正式地,如果您的任务属于以下类别,则很容易扩展Nautilus:在上下文菜单(或工具栏)中添加涉及所选文件/文件夹或当前文件夹的新条目,向文件添加其他自定义属性并在列表中显示这些详细信息查看,修改属性页面以显示包含信息的其他选项卡等。还有其他可能性,但这些是最常见的。

如果上面的讨论听起来很抽象,那么让我们举一些例子:

  1. 在当前文件夹中打开终端或以root用户身份打开所选文件。
  2. 选择一些音频文件并将其添加到Rhythmbox“正在播放”队列。
  3. 选择几个文件并将它们发送到thunderbird进行附件
  4. 在属性页面等中显示有关所选电影文件的IMDB详细信息。

以上示例以复杂度的顺序示出了用例的梯度。 其中一些非常简单,可以使用简单的方法自动化。 像(4)这样的任务很棘手,需要强大的工具。 选择正确的工具很重要,我们将讨论如何选择最佳方法。

自定义Nautilus上下文菜单的不同方法与Linux中的所有内容一样,自定义Nautilus的方法总是从简单到复杂。 在这篇文章中,我们将讨论三种最常见的方法:

  1. 使用像nautilus-actions这样的工具
  2. 使用Nautilus脚本
  3. 使用nautilus-python编写的扩展

和以前一样,我所有的讨论都将集中在Ubuntu上,但它应该相对容易应用于其他Linux发行版。

使用nautilus-actions自定义Nautilus上下文菜单这可能是最简单的方法。 您需要知道的是执行任务的shell命令或脚本。 Nautilus操作提供了一个直观的GUI来决定filter和要执行的操作。 如果满足以下条件,此方法最有效:a。 您希望自动化的任务可以在命令行b中轻松翻译。 命令行实用程序以相对简单的forms接受参数(例如,空格分隔的参数等)c。 命令行实用程序仅依赖于与所选文件/文件夹相关的信息。

要安装软件包,请在终端键入以下内容(或从Synaptic安装此软件包):

sudo apt-get install nautilus-actions 

安装软件包后,可以在系统 – >首选项 – > Nautilus操作配置中访问它。 我将在此处进行基本讨论,因为有一个关于如何在Nautilus中添加自定义function来创建新操作的体面教程。

让我们举一个简单的例子 – 如果我右键单击一个文件夹,我想要一个新菜单,上面写着“在这里打开终端”,点击它时,必须打开一个新的终端,终端的工作目录必须是所选文件夹。 第一步是找出它是否可以在“单个”命令中表达。 找到调用终端的命令名称 – 它叫做gnome-terminal。 阅读手册页,发现它接受参数“-working-dir”。 提供时,它会在指定的文件夹中启动终端。

现在从System – > Preferences – > Nautilus Actions Configuration启动Nautilus Action。 步骤是:a。 创建一个动作。 湾 在“操作”选项卡中,为操作指定一些名称,然后选择“在选择上下文菜单中显示项目”。 如果您希望它在工具栏中可见,它也可以完成! 选择“在工具栏中显示项目”并选择一些图标。 C。 在命令选项卡中,将“gnome-terminal”作为路径和参数指定为“-working-directory =%d /%f”。 %d和%f是在调用命令时将展开的特殊代码。 要查看其他特殊代码及其含义,请单击“图例”按钮。 d。 在“条件”选项卡中,选择“仅文件夹”。

现在打开一个新的Nautilus窗口,选择一个文件夹并右键单击。 Presto! 您将看到“在此处打开终端”菜单。 选择它,您将看到一个新的终端打开,所选文件夹作为其当前目录!

在我的情况下,我需要为Meld制作一个脚本来比较对文件夹/文件的修改。

我正在使用gnome-shell 3.10和Nautilus(Files)3.10.1在UbuntuGNOME 14.04上运行。

而且我这样做了:

  1. 打开文件夹~/.local/share/nautilus/scripts/
  2. (可选)为脚本创建一个子文件夹,在我的例子中是Meld/
  3. 创建你的bashperlpython脚本(参见答案末尾的示例)。
  4. 使脚本可执行(右键单击脚本文件>属性>权限>标记执行选项)
  5. 为了确保Nautilus将应用更改,我重新启动Nautilus,运行nautilus -q; nautilus; nautilus -q; nautilus; 在一个终端。

现在,您可以右键单击任何文件夹/文件以查看上下文菜单Scripts> my-script

示例: scripts/Meld/Compare_with_Meld

 #!/bin/bash meld $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS 

预定义的Nautilus变量:

  • NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
    所选文件的换行符分隔路径 – 仅限本地(即/home/user/someFile )。
  • NAUTILUS_SCRIPT_SELECTED_URIS
    所选文件的换行符分隔的URI(即file:///home/user/someFile )。
  • NAUTILUS_SCRIPT_CURRENT_URI
    当前位置
  • NAUTILUS_SCRIPT_WINDOW_GEOMETRY
    当前窗口的位置和大小