如何编辑Nautilus文件管理器的上下文菜单?

我需要更改Nautilus文件管理器中的菜单项。 我愿意在Python或其他任何事情上弄脏我的手。 我想在Nautilus的上下文菜单中添加或删除菜单项。 对此有任何帮助将非常有帮助。

注意:

  1. 出于这个原因,我不打算去任何其他文件管理器。
  2. 我也不是在谈论Nautilus 脚本 。 我想知道如何创建名为“Scripts”的菜单项。

添加菜单项可以编写Nautilus扩展名,如

from gi.repository import Nautilus, GObject class MyItemExtension(GObject.GObject, Nautilus.MenuProvider): def get_file_items(self, window, files): menuitem = Nautilus.MenuItem(name='MyItem::SomeItem', label='My Item', tip='my own item', icon='') menuitem.connect('activate', self.on_menu_item_clicked, files) return menuitem, def on_menu_item_clicked(self, item, files): print [f.get_name() for f in files] 

将其保存为/usr/share/nautilus-python/extensions/myitem.py ,安装包python-nautilus并重新启动Nautilus,例如运行nautilus -q; sleep 2; nautilus nautilus -q; sleep 2; nautilus nautilus -q; sleep 2; nautilus 。 现在,如果右键单击文件,您应该会看到一个新项目“我的项目”。

据我所知,没有记录的方法来删除菜单项。

有关更多信息, 请参阅API参考 。

这仅适用于Nautilus 3.8及更新版本。


我知道它不是唯一可以执行此操作的地方,但您可以在库中添加上下文选项: /usr/lib/nautilus/extensions-3.0

库文件需要是.sohex库。

我认为另一种方法是修改Nautilus的源代码。

编辑:至少不像Gnome随Ubuntu 18.04一起提供的那样。 在线研究看起来这个function完全是从Gnome中提取出来的,根据Redhat的错误讨论: https : //bugzilla.redhat.com/show_bug.cgi? id = 885088虽然看起来共享对话框UI可以通过/usr/share.nautilus-share/interfaces