Как настроить контекстное меню в Nautilus?

Время от времени у меня появляются идеи действий, которые я хотел бы иметь в контекстном меню «Наутилуса». Как мне их туда добавить? Есть ли что-то вроде плагина Thunar UCA для Nautilus?

35
задан 22 December 2015 в 18:50

6 ответов

Этот ответ устарел: недавно обновленный ответ - этот.

Разработчики приложений хотят добавить действия своих приложений - смотрите эту страницу ниже, здесь и здесь .


Контекстные меню Nautilus раньше настраивались расширениями Nautilus Nautilus . Предупреждаем, что эта ссылка ведет к архивированному документу; Gnome devs удалили эту документацию и больше не поддерживают такую настройку. Однако, это все еще может работать.

Вы также можете поместить простые скрипты оболочки в каталог ~/.local/share/nautilus/scripts (~/.gnome2/nautilus-scripts в ранних релизах), и они появятся в контекстном меню файла в подменю Scripts.

28
ответ дан 22 December 2015 в 18:50

Можно использовать расширение 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:)

12
ответ дан 22 December 2015 в 18:50

Обновление для Ubuntu 18.04

На дату Ubuntu 18.04 был выпущен Nautilus-Actions был / больше не доступен. Похоже, что она также была заменена новой программой под названием Filemanager-Actions, которая в остальном выглядит идентично.


Чтобы установить эту программу, см. это решение.


Nautilus Actions

Мы можем определите наши собственные пункты контекстного меню, щелкнув правой кнопкой мыши с помощью nautilus-actions Install nautilus-actions.

  • Запустите Nautilus-Actions Configuration Tool либо из Dash, либо из терминала с

      nautilus  -action-config-инструмент
     

enter image description here

  • На вкладке Действие дайте своему действию разумный ярлык, например «Открыть в Терминаторе» и выберите, чтобы отобразить это в выборе или в контекстном меню.

  • Затем откройте вкладку Команда , чтобы ввести команды для запуска

enter image description here

  • Дайте в полный путь к вашей команде ( / usr / bin / command_to_run ) и параметры программы.

  • После выхода из системы и повторного входа в будет отображено контекстное меню, отображаемое правой кнопкой мыши ниже:

enter image description here


36
ответ дан 22 December 2015 в 18:50

Если вы хотите иметь возможность делать что-то в любое время, делайте, как говорит ulidtko и используйте ~/.gnome2/nautilus-scripts.

Если вы хотите иметь возможность настроить, когда увидите его, установите пакет nautilus-action, затем перейдите в System->Preferences->Nautilus Actions Configuration.

3
ответ дан 22 December 2015 в 18:50

ноября 29 , Эпоха 2016 года Убунт u 14.04, 16.04 и 16.10 плюс более ранние версии.

См. инструкции Nautilus по созданию собственного сценария здесь ( Справка Ubuntu - Руководство по сценариям Nautilus ). Обычно вы:

  • Перейдите в каталог ~ / .local / share / nautilus / scripts /
  • Поместите туда свой скрипт (написанный на Bash, Perl или Python).
  • Отметьте скрипт как исполняемый с помощью Nautilus или из терминала с chmod + x имя_сценария
  • Nautilus делает переменные окружения доступными для вашего скрипта: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI] [пример скрипта 12 Nautilus - [пример 12] [пример скрипта 12] Nautilus - [пример скрипта 12] Nautilus - [пример 12] [пример скрипта 12] Nautilus, а также пример скрипта 12 NDTIL_SCRIPT_CURRENT_URI] и [Пример 12] Скрипты ) для отправки файлов по электронной почте, монтирования файла ISO, настройки файлов только для чтения, редактирования файла с привилегиями gedit ROOT, открытия терминала в текущем месте и т. Д.

    Просмотрите скрипты и возьмите один в качестве шаблона для шифрования файлов, загрузки в облако, сжатия в резервную копию или всего, что вам нужно сделать.

3
ответ дан 22 December 2015 в 18:50

TL; DR

Лучшее решение для разработчиков приложений - использовать python-nautilus .

Создайте свой сценарий python ( следуя примерам и плохой документации ) и скопируйте его в нужную папку:

mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions

Подробное объяснение

Допустим, вы хотите создать приложение, которое пользователь устанавливает с помощью сценария или файла .deb , имея в виду это, я объясню, почему я думаю python-nautilus является лучшим решением по сравнению с nautilus-actions и сценариями nautilus .

Nautilus Actions

Это единственное решение, предлагающее графический интерфейс и, следовательно, упрощающее создание сложное поведение, например, решить, какие элементы меню отображать, если mime-тип выбранного файла - text / plain .

Основная проблема с этим решением заключается в том, что это непросто (если даже возможно ble), чтобы импортировать записи на другой компьютер без Configuration Tool и пользователя, импортирующего его, скажем так, это было бы невозможно сделать с помощью сценария.

Nautilus Scripts

Это более простое решение, выберите Скрипт, поместите его в папку и готово. Это определенно позволит сценарию установки или файлу .deb создать новую запись в контекстном меню. Какие проблемы? С чего начать ...

  • Он всегда появляется в подменю «Сценарии».
  • Он не отображается, если вы ничего не выбрали.
  • Он не позволяет вам решить, следует ли отображать запись или нет.
  • Не позволяет использовать всплывающие подсказки или разные заголовки. (возможно, я придирчив)

Хорошее приложение не использует такие ярлыки, потому что это портит пользовательский опыт.

python-nautilus

Не так просто создать, как предыдущие решения, но предлагает лучший из двух миров. Создание сценариев и настройка.

Это решение позволяет вам создать сценарий Python, который получает файлы, выбранные в наутилусе, и позволяет вам решать, хотите ли вы отображать запись или нет, и что делать с этой записью. Он также позволяет вам создавать подменю и / или другие интересные вещи.

Недостатком является большой недостаток документации, и разработчики, которые просто хотят добавить запись , могут потерять пару часов на создание рабочий прототип (В моем исследовании я нашел решение на основе C, которое было намного сложнее, чем это).

Обычно я использую Visual Studio Code, а в Windows он предлагает пункт контекстного меню Открыть с помощью Visual Studio Code , ему не хватает той же функциональности в Linux, с решением Python было бы легко решить проблему. Я думаю, что приложения в Linux могут выиграть от интеграции с наутилусом.

Надеюсь, это объяснение помогло вам решить, что выбрать.

3
ответ дан 22 December 2015 в 18:50

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

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