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

29

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

Иван
источник
для «Создать новый документ» при щелчке правой кнопкой мыши, перейдите по
ссылке

Ответы:

25

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


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

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

ulidtko
источник
3
Обратите внимание, что, как сказано в askubuntu.com/questions/281062/… если вы используете Ubuntu 13.04, которая использует более новую версию Nautilus, вы должны использовать ~/.local/share/nautilus/scriptsпапку для вставки ваших скриптов. И даже тогда она будет отображать только скрипты когда вы нажимаете правой кнопкой мыши на файл или папку, а не на пустое место.
Логан
2
разве это не устарело?
@ Cipricus это так. Ответил на 2011 год, а это 6 лет назад . 12 релизов Ubuntu ранее.
ulidtko
вопрос не помечен как специфический для издания, и есть очень недавние ответы
@dessert - я не вижу смысла адаптировать вопрос к устаревшему ответу только потому, что этот ответ был помечен как окончательный в прошлом. Это может привести к тому, что обновленный (и получивший наибольшее количество голосов) ответ будет выглядеть здесь неуместно, тогда как можно было бы просто отметить последний ответ как окончательный. - Другим способом было бы добавить короткое редактирование к окончательному, теперь устаревшему ответу, со ссылкой на обновленный: что я только что сделал.
30

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

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


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


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

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

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

    nautilus-actions-config-tool
    

введите описание изображения здесь

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

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

введите описание изображения здесь

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

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

введите описание изображения здесь


Takkat
источник
1
Это все еще актуально?
RolandiXor
2
Действия Nautilus выполняются, как и ожидалось, в 12.04
Таккат
11

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

mnrl
источник
Вам может понадобиться создать nautilus-pythonи extensionsпапки, если их там нет.
souravc
Я попробовал большинство решений в этой теме и обнаружил, что решение Python является лучшим. Хотя он и не идеален, главным образом из-за отсутствия документации, он допускает более гибкий сценарий и переносимость.
Рикардо Родригес
3

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

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

zpletan
источник
3

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, открытия терминала в текущем месте и т. Д.

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

WinEunuuchs2Unix
источник
2

TL; DR

Лучшее решение для разработчиков приложений - использовать 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 могли бы выиграть от интеграции наутилуса.

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

Рикардо Родригес
источник
Именно поэтому я и хотел добавить контекстное меню. Не могли бы вы опубликовать свое решение "Open with VS Code" на python-nautilus? Спасибо.
Шарпиро,
Cra0zy улучшил мою версию до подходящего решения: gist.github.com/cra0zy/f8ec780e16201f81ccd5234856546414
Рикардо Родригес