Как редактировать контекстные меню файлового менеджера Nautilus?

Мне нужно изменить пункты меню, присутствующие в диспетчере файлов Nautilus. Я открыт для того, чтобы испачкать руки в Python или чем-то еще в этом отношении. Я хотел бы добавить или удалить пункты меню из контекстного меню в Nautilus. Любая помощь по этому поводу будет очень полезна.

Примечание:

  1. Я не собираюсь идти в какой-либо другой файловый менеджер по этой причине.
  2. Я не говорю и о сценариях Наутилуса . Я хотел бы знать , как изначально был создан пункт меню «Скрипты».
2
задан 25 July 2016 в 05:58

2 ответа

Чтобы добавить пункты меню, можно написать расширение 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. , Теперь вы должны увидеть новый элемент «My Item», если вы щелкнете правой кнопкой мыши по файлу.

Насколько я знаю, не существует документированного способа удаления пунктов меню.

см. Ссылку API для получения дополнительной информации.

0
ответ дан 25 July 2016 в 05:58

Это относится только к Наутилусу 3.8 и новее.


Я знаю, что это не единственное место, где можно это сделать, но вы можете добавить контекстные опции в библиотеку: /usr/lib/nautilus/extensions-3.0.

Библиотечные файлы должны быть .so шестнадцатеричные библиотеки.

Я думаю, что другой способ сделать это - изменить исходный код Nautilus.

РЕДАКТИРОВАТЬ: Это больше не верно, по крайней мере, с того, что Gnome поставляется с Ubuntu 18.04. Исследования в Интернете показывают, что эта функция была полностью извлечена из Gnome, согласно этому обсуждению ошибки Redhat: https://bugzilla.redhat.com/show_bug.cgi?id=885088 Хотя кажется, что общий ресурс Пользовательский интерфейс диалога можно изменить с помощью /usr/share.nautilus-share/interfaces.

0
ответ дан 25 July 2016 в 05:58

Другие вопросы по тегам:

Похожие вопросы: