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

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

6 ответов

Решение

Приведенный ниже ответ устарел: недавно обновленный ответ.


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

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

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

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


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


Действия наутилуса

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

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

    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 и перезапустите наутилус. Когда вы щелкнете правой кнопкой мыши на рабочем столе и выберете свой элемент, ваша простая команда bash будет выполнена:)

29 ноября 2016 года эпохи Ubuntu 14.04, 16.04 и 16.10 плюс более ранние версии.

Смотрите инструкции Nautilus для создания собственного скрипта здесь ( Help Ubuntu - Сценарии Nautilus Как). В основном вы:

  • Перейдите в каталог ~/.local/share/nautilus/scripts/
  • Поместите туда свой скрипт (написанный на Bash, Perl или Python).
  • Пометьте скрипт как исполняемый с помощью Nautilus или из терминала с chmod +x script_name
  • Наутилус делает переменные среды доступными для вашего скрипта: NAUTILUS_SCRIPT_SELECTED_FILE_PATHS, NAUTILUS_SCRIPT_SELECTED_URIS, NAUTILUS_SCRIPT_CURRENT_URI и NAUTILUS_SCRIPT_WINDOW_GEOMETRY

В ( Справка Ubuntu - Образцы сценариев Nautilus) находятся примеры сценариев для электронной почты, монтирования ISO-файла, настройки файлов только для чтения, редактирования файла с привилегиями GEDIT ROOT, открытия терминала в текущем месте и т. Д.

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

TL;DR

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

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

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

Детальное объяснение

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

Действия наутилуса

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

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

Сценарии Наутилуса

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

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

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

питон-наутилус

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

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

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

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

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

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

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

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