我需要更改 Nautilus 文件管理器中的菜单项。我愿意尝试使用 Python 或其他任何语言。我想在 Nautilus 的上下文菜单中添加或删除菜单项。任何有关此问题的帮助都将非常有帮助。
笔记:
- 由于这个原因,我不想使用任何其他文件管理器。
- 我不是在谈论 Nautilus脚本。 我想知道首先如何创建名为“脚本”的菜单项。
答案1
要添加菜单项,可以编写 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
。现在,如果右键单击文件,您应该会看到一个新项目“我的项目”。
据我所知,没有记录下来的方法可以删除菜单项。
这请参阅 API 参考了解更多信息。
答案2
这仅适用于 Nautilus 3.8 及更新版本。
我知道这不是唯一可以做到这一点的地方,但您可以在库中添加上下文选项:/usr/lib/nautilus/extensions-3.0
。
库文件需要是.so
十六进制库。
我认为另一种方法是修改 Nautilus 的源代码。
编辑:至少从 Ubuntu 18.04 附带的 Gnome 开始,这种情况就不再存在了。根据网上的调查,这个功能似乎完全从 Gnome 中移除了,正如这个 Redhat 错误讨论中所说:https://bugzilla.redhat.com/show_bug.cgi?id=885088 尽管看起来可以通过 来更改共享对话框 UI /usr/share.nautilus-share/interfaces
。