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

Nemo menu
Nemo menu. Основные действия
Nemo menu. Пример nemo_action
Caja menu
Caja menu. Добавление нового действия
Caja menu. Добавление кнопки

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

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

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

 

Nemo menu

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

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

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

 

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

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

[Nemo Action]
#Действие может быть как активным, так и не активным
Active=false
# Стандартные ключи, которые могут быть использованы в Name, Comment (tooltip) и 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-скрипта в меню:

Утилита Caja-Actions находится в «Меню» — «Параметры» — «Настройка действий меню файлового менеджера Caja».
Внешний вид утилиты при запуске выглядит следующим образом:

 

Если вы хотите создать новое меню или новое действие, нажмите на «Файл» и выберите нужный вариант.

При создании нового действия оно будет отображаться в списке элементов, также откроются вкладки: «Действие», «Команда», «Выполнение», «Базовые имена», «Типы MIME», «Папки», «Схемы», «Характеристики», «Среда», «Свойства». Рассмотрим каждую более подробно.

На вкладке «Действие» можно выбрать главные характеристики текущего элемента. Здесь можно выбрать, показывать ли элемент в контекстном меню, в панели инструментов; можно задать имя выбранному действию, а также выбрать значок.

На вкладке «Команда» можно выбрать команду для выполнения и её параметры. Здесь можно указать путь к команде, параметры команды и можно выбрать рабочий каталог, в котором следует запустить команду.

На вкладке «Выполнение» можно указать, как именно следует выполнить команду. Можно выбрать режим выполнения: «Обычный», «В терминале», «Встроенный», «Показать вывод».

На вкладке «Базовые имена» можно определить, для каких базовых имён текущий элемент будет показан в контекстном меню Caja, а для каких — не будет. Отображение определяется столбцами «Должно соответствовать одному из следующих имен» и «Не должно соответствовать ни одному из следующих имен».

На вкладке «Типы MIME» можно определить, для каких типов MIME текущий элемент будет показан в контекстном меню Caja. Также типы MIME можно использовать в отрицательном варианте, чтобы указать, для какого типа объектов элемент не должен отображаться.

На вкладке «Папки» можно определить, где должны находиться текущие выбранные файлы, чтобы элемент был показан в контекстном меню Caja. Можно указать, в каких папках он не должен отображаться.

На вкладке «Схемы» можно определить, каким схемам должны удовлетворять выбранные файлы, чтобы элемент был показан в контекстном меню Caja. Можно указать для каких схем элемент не должен отображаться.

На вкладке «Характеристики» можно определить, каким характеристикам должны удовлетворять текущие выбранные файлы, чтобы элемент был показан в меню Caja. Также можно указать, для каких характеристик элемент не должен отображаться.

На вкладке «Среда» можно определить расширенные условия, которым должны удовлетворить текущие выбранные файлы, чтобы элемент был показан в меню Caja. Здесь же можно выбрать количество элементов, при котором они будут показаны, среду рабочего стола и среду выполнения.

На вкладке «Свойства» можно изменить некоторые свойства и получить доступ к некоторой неизменяемой информации.

 

Добавление нового действия

Рассмотрим добавление FlameShot в качестве быстрого доступа с помощью правой кнопки мыши.
Добавим новое действие, назовём его FlameShot и установим галочки во всех рекомендуемых полях.

Затем необходимо указать путь к утилите и нажать кнопку «Сохранить».

После сохранения действия нажимаем на рабочем столе правой кнопкой мыши, появится контекстное меню, в котором будет отображаться наше созданное новое действие «FlameShot».

После нажатия на него он автоматически запустится.

 

Добавление кнопки «Отправить на рабочий стол»

Для добавления новой кнопки нам понадобится скрипт, который будет создавать кнопку на рабочий стол, если это исполняемый файл; если это медиа-файлы или какие-либо другие файлы, понадобится ссылка.

Создадим новый скрипт со следующим содержимым:

nano make_link.sh
#!/bin/bash
fullname=$1
var=$1
name=$(basename "$var")
case $name in
*.sh|*.py|*pyc|*.pyd|*.jar|*.cpp)
echo -e "#!/usr/bin/env xdg-open\n[Desktop Entry]\nVersion=1.0\
nType=Application\nTerminal=false\nIcon=/\nIcon[ru_RU]=/\nName[ru_RU]=$name\
nExec='$var'\nName=$name\n" > ~/Рабочий\ стол/$name.desktop
chmod +x ~/Рабочий\ стол/$name.desktop
;;
*)
ln -sf "$var" ~/Рабочий\ стол/
;;
esac

Затем установим сохраненному скрипту права на исполнение следующей командой:

chmod +x make_link.sh

После этого можно приступать к выполнению готового скрипта в утилите Caja-Actions.

Добавим новое действием и назовем его «Отправить на рабочий стол», поставим галочку в поле «Показывать элемент в контекстном меню выделения».

Далее переходим на вкладку «Команда», указываем путь — «/home/alex/make_link.sh», параметры — «%F», рабочий каталог — «%d».
Сохраняем действие.

После этого заходим в любую директорию (рассмотрим на примере домашней директории — /home/alex), выбираем в ней любой файл и нажимаем на него правой кнопкой мыши, выбираем «Caja-Actions actions» – «Отправить на рабочий стол». После этого создаётся ссылка (ярлык) на рабочем столе.

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

Print Friendly, PDF & Email