Ответы:
Ниже ответ устарел: недавно обновленный ответ этот один .
Контекстные меню Nautilus раньше настраивались расширениями Nautilus . Имейте в виду, что эта ссылка ведет к архивному документу; Разработчики Gnome удалили эту документацию и больше не поддерживают такую настройку. Это все еще может работать, хотя.
Вы также можете поместить простые сценарии оболочки в каталог ~/.local/share/nautilus/scripts
( ~/.gnome2/nautilus-scripts
в более ранних выпусках), и они появятся в контекстном меню файла в подменю « Сценарии» .
~/.local/share/nautilus/scripts
папку для вставки ваших скриптов. И даже тогда она будет отображать только скрипты когда вы нажимаете правой кнопкой мыши на файл или папку, а не на пустое место.
На момент выпуска Ubuntu 18.04 Nautilus-Actions был / больше не доступен. Похоже, что она также была заменена новой программой Filemanager-Actions, которая в остальном выглядит идентично.
Чтобы установить эту программу, посмотрите это решение.
Мы можем определить наши собственные пункты контекстного меню, вызываемые правой кнопкой мыши, с помощью nautilus-actions .
Запустите инструмент настройки Nautilus-Actions либо из Dash, либо из терминала с
nautilus-actions-config-tool
На вкладке « Действие » присвойте своему действию метку, например «Открыть в Терминаторе», и выберите ее для отображения в выделенном или контекстном меню.
Затем откройте вкладку « Команда », чтобы ввести команды для запуска
Укажите полный путь к вашей команде ( /usr/bin/command_to_run
) и опциям программы.
После выхода и повторного входа появится контекстное меню правой кнопкой мыши ниже:
nautilus-actions-config-tool
и добавьте 'Create launcher' в контекстное меню Nautilus (без gnome-desktop-item-edit
)
Можно использовать расширение 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 будет выполнена :)
nautilus-python
и extensions
папки, если их там нет.
Если вы хотите быть в состоянии что-то сделать в любое время, делайте, как говорит ulidtko, и используйте ~/.gnome2/nautilus-scripts
.
Если вы хотите иметь возможность настроить, когда вы его видите, установите пакет nautilus-actions, затем перейдите в System-> Preferences-> Nautilus Actions Configuration.
29 ноября 2016 года эпохи Ubuntu 14.04, 16.04 и 16.10 плюс более ранние версии.
Смотрите инструкции Nautilus для создания своего собственного скрипта здесь ( Help Ubuntu - Сценарии Nautilus Как ). В основном вы:
~/.local/share/nautilus/scripts/
chmod +x script_name
В ( Справка Ubuntu - Образцы сценариев Nautilus ) находятся примеры сценариев для отправки файлов электронной почты, монтирования файла ISO, настройки файлов только для чтения, редактирования файла с привилегиями GEDIT ROOT, открытия терминала в текущем месте и т. Д.
Просмотрите сценарии и возьмите один в качестве шаблона для шифрования файлов, загрузки в облако, сжатия в резервное копирование или всего, что вам нужно сделать.
Лучшее решение для разработчиков приложений - использовать python-nautilus .
Создайте свой скрипт на Python ( следующие примеры и плохую документацию ) и скопируйте его в нужную папку:
mkdir -p ~/.local/share/nautilus-python/extensions && cp script.py ~/.local/share/nautilus-python/extensions
Допустим, вы хотите создать приложение , которое пользователь устанавливает с помощью сценария или .deb
файла, с этим в виду , я буду объяснять , почему я думаю , что python-nautilus
это лучшее решение по сравнению с Nautilus-действий и наутилусов сценариев .
Это единственное решение, которое предлагает графический интерфейс и, следовательно, облегчает создание сложного поведения, например, решает, какие пункты меню показывать, если выбран mime-тип выбранного файла text/plain
.
Основная проблема этого решения заключается в том, что нелегко (если вообще возможно) импортировать записи на другой компьютер без инструмента конфигурирования и пользователя, импортирующего его, скажем просто, что это невозможно сделать со сценарием.
Это более прямолинейное решение, подобрать сценарий, поместить его в папку и все готово. Это определенно позволит установочному сценарию или .deb
файлу создать новую запись в контекстном меню. Какие проблемы? С чего начать ...
Хорошее приложение не использует подобные ярлыки, потому что оно портит пользовательский опыт.
Не так легко создать, как предыдущие решения, но предлагает лучшее из обоих миров. Сценарии и настройка.
Это решение позволяет вам создать скрипт Python, который получает файлы, выбранные в nautilus, и позволяет вам решить, хотите ли вы показать запись или нет, и что делать с этой записью. Это также позволяет вам создавать подменю и / или классные вещи.
Недостатком является большая нехватка документации, и разработчики, которые просто хотят добавить запись, могут потерять пару часов на создание рабочего прототипа (в моем исследовании я нашел решение на основе C, которое было намного сложнее, чем это).
Обычно я использую код Visual Studio, в то время как в Windows он предлагает пункт контекстного меню Open with Visual Studio Code
, ему не хватает той же функциональности в Linux, а с помощью решения Python было бы легко решить эту проблему. Я думаю, что приложения в Linux могли бы выиграть от интеграции наутилуса.
Надеюсь, что это объяснение помогло вам решить, что выбрать.