Как настроить контекстное меню в 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.