Answers:
下面的答案是过时的:最近更新的答案是这一个。
Nautilus的上下文菜单以前可以通过Nautilus扩展程序进行自定义。请注意,此链接将导致存档的文档;Gnome开发人员删除了该文档,不再支持这种自定义。它可能仍然可以工作。
您还可以将普通外壳脚本放置在~/.local/share/nautilus/scripts
(~/.gnome2/nautilus-scripts
在早期版本中)目录下,它们将显示在“ 脚本”子菜单下的文件上下文菜单中。
~/.local/share/nautilus/scripts
文件夹放置脚本。即使这样,它也只会显示脚本当您右键单击文件或文件夹而不是空白空间时。
在发布Ubuntu 18.04的日期,Nautilus-Actions已经/不再可用。它似乎也已被名为Filemanager-Actions的新程序所取代,该程序在其他情况下看起来相同。
要安装此程序,请参阅此解决方案。
我们可以使用nautilus-actions 定义自己的右键单击上下文菜单项。
从Dash或从终端运行Nautilus-Actions配置工具
nautilus-actions-config-tool
在“ 操作”选项卡中,为您的操作指定一个合理的标签,例如“在终结者中打开”,然后选择在选择或上下文菜单中显示此标签。
接下来打开“ 命令”选项卡以输入要运行的命令
输入命令(/usr/bin/command_to_run
)和程序选项的完整路径。
后注销并且再次右键关联菜单下面会显示:
可以使用python-nautilus扩展名替代nautilus-actions
。
安装:
sudo apt-get install python-nautilus
一个简单的例子:
import os
from gi.repository import Nautilus, GObject
class ColumnExtension(GObject.GObject, Nautilus.MenuProvider):
def __init__(self):
pass
def menu_activate_cb(self, menu, file):
os.system("write here your simple bash command & pid=$!")
def get_background_items(self, window, file):
item = Nautilus.MenuItem(name='ExampleMenuProvider::Foo2',
label='Name of your item',
tip='',
icon='')
item.connect('activate', self.menu_activate_cb, file)
return item,
在下面复制此python脚本,~/.local/share/nautilus-python/extensions
然后重新启动nautilus。当您右键单击桌面并选择您的项目时,将执行简单的bash命令:)
nautilus-python
和extensions
文件夹(如果不存在)。
2016年11月29日, Ubuntu 14.04、16.04和16.10以及更早的版本。
请参阅Nautilus有关在此处创建自己的脚本的说明(帮助Ubuntu-Nautilus Scripts How to)。基本上,您:
~/.local/share/nautilus/scripts/
chmod +x script_name
(帮助Ubuntu-Nautilus示例脚本)中有一些示例脚本,用于通过电子邮件发送文件,挂载ISO文件,将文件设置为只读,使用gedit ROOT特权编辑文件,在当前位置打开终端等。
浏览这些脚本,并以其中一个作为模板来加密文件,上传到云,压缩到备份或您需要执行的任何操作。
对于应用程序开发人员而言,最好的解决方案是使用python-nautilus。
创建您的python脚本(以下 示例和错误的文档)并将其复制到正确的文件夹中:
mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions
假设您要创建一个用户使用脚本或脚本安装的应用程序 .deb
文件请牢记这一点,我将解释为什么我认为python-nautilus
与nautilus-actions和nautilus脚本相比,这是一个更好的解决方案。
这是提供GUI的唯一解决方案,因此可以轻松创建复杂的行为,例如,确定所选文件的mime-type为时要显示哪些菜单项text/plain
。
此解决方案的主要问题在于,如果没有配置工具和用户导入,将条目导入到另一台计算机是不容易的(即使可能的话),我们只能说无法使用脚本来完成。
这是更直接的解决方案,选择一个脚本,将其放在文件夹中并完成。这肯定会允许安装脚本或.deb
文件在上下文菜单中创建新条目。有什么问题?我从哪里开始...
好的应用不会使用这种快捷方式,因为它会破坏用户体验。
创建起来不像以前的解决方案那么容易,但是可以兼顾两者。脚本和自定义。
该解决方案允许您创建一个Python脚本,该脚本接收在nautilus中选择的文件,让您决定是否要显示一个条目以及如何处理该条目。它还允许您创建子菜单和/或很酷的东西。
缺点是缺少大量文档,仅想添加条目的开发人员可能会发现自己浪费了数小时来创建工作原型(在我的研究中,我发现基于C的解决方案要比这复杂得多)。
我通常使用Visual Studio Code,而在Windows上它提供了一个上下文菜单项Open with Visual Studio Code
,但在Linux上却缺少相同的功能,而使用Python解决方案则很容易解决问题。我认为Linux中的应用程序可能会从Nautilus集成中受益。
希望这个解释可以帮助您决定选择什么。