7.33 Расширение контекстного меню nemo/caja

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

В данной статье описывается алгоритм добавления действий в контекстное меню.

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

Nemo menu

Действия, которые необходимо добавить в контекстное меню располагаются по данному пути:

/home/Имя_Пользователя/.local/share/nemo/actions

Файлы, которые будут добавлены в качестве действия имеют тип *.nemo_action

Основные действия

Рассмотрим основные доступные действия в действии для меню Nemo:

[Nemo Action]
#Действие может быть как активным, так и не активным
Active=false
# Стандартные ключи, которые могут быть использованы в Name, Comment (tooltip) and Exec полях:
#%U - вставка URI
#%F - вставка пути выбранного элемента
#%P - insert path of parent (current) directory
#%f or %N (deprecated) - insert display name of first selected file
#%p - insert display name of parent directory
#%D - insert device path of file (i.e. /dev/sdb1)
#%e - insert display name of first selected file with the extension stripped
#Имя которое будет показано в меню
Name=Test Custom Action applied to %N
# Комментарий
Comment=This is a test for Nemo actions. Action will be applied to %N
# Строка исполнения
Exec=<myaction.py -r -g %P %F %U>
# Иконка в меню
Icon-Name=folder
# Тип выбора файлов [s]ingle, [m]ultiple, any, notnone, none (background click), или число файлов, сколько должно быть выбрано на экране.
Selection=m
# Какие расширения отображать - это массив, заканчивающийся точкой с запятой
# Параметры одиночной записи, заканчивающиеся точкой с запятой:
# "dir" для выбора директорий
# "none" без расширений
# "nodirs" для любого выбора, кроме директорий
# "any" для любого типа расширения, включая директории
# Отдельные расширения могут быть списком, заканчивающимся точкой с запятой
# В расширениях НЕ учитывается регистр. jpg будет соответствовать JPG, jPg, jpg и т.д.
Extensions=any;
# Какие типы mime-types должны быть ассоциированы с данным действием
#Mimetypes=text/plain;
# Используемый разделитель (если есть) - добавьте строку для вставки между записями path/url в строке exec. Необязательно - если вы не укажете это значение, будет вставлен пробел
#Separator=,
# Типы кавычек используемые в действии
# Can be: single, double, backtick
#Quote=double
# Dependencies - необходимые программы для работы, если Nemo не найдет нужного ПО, действие не будет показано в меню
#Dependencies=gedit;
# Условия - массив разделенный точками с запятой:
# "desktop" текущая (родительская) папка - это рабочий стол
# "removable" цель которую можно извлечь
# "gsettings <schema> <boolean key>" is true
# "gsettings <schema> <key> <key-type> <[eq|ne|gt|lt]> <value>"
# "dbus <name>" exists
# "exec <program>" запустить программу и проверить exit code (0 is pass, non-0 is fail).
# Заключите в <>, если программа находится в папке действия.
#Conditions=desktop;
# Escape Spaces - установите значение true, чтобы избежать пробелов в именах файлов и uris ($U, $F, $P, $D)
# Иногда это может быть предпочтительнее получения необработанных имен файлов, которые должны быть заключены в кавычки.
# По умолчанию false
EscapeSpaces=true
# Запуск в терминале - установите значение true, чтобы выполнить строку Exec в открывшемся окне терминала.
# По умолчанию false
Terminal=true

Пример nemo_action

Рассмотрим пример добавления в контекстное меню простого блокнота Pluma.

Создадим в /home/Имя_Пользователя/.local/share/nemo/actions файл pluma.nemo_action

Содержимое файла:

[Nemo Action]
Name=Pluma
Name[ru]=Блокнот
Comment=Pluma
Comment[ru]=Блокнот
Exec=pluma
Selection=any
Quote=double
Extensions=any;

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

Caja menu

Функционал меню Caja можно расширить написанием обычного bash скрипта, который должен быть помещен в данную директорию: /home/Имя_Пользователя/.config/caja/scripts

В самом bash скрипте может быть прописан как определенный алгоритм, так и запуск определенного приложения.

После написания и расположения скрипта в директории требуется сделать его исполняемым. Для этого откройте параметры файла и поставьте галочку:

Пример отображения bash скрипта в меню:

 

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email