Как это работает.
Одна из особенностей KDE и Plasma — обилие текстовых конфигов и скриптов различного типа, которые определяют вид и поведение среды. Контекстные меню Dolphin не исключение. Часть действий из меню встроены прямо в код Dolphin, но остальные генерируются «на лету» из специальных файлов.
Общесистемные контекстные действия хранятся в каталоге:
/usr/share/kservices5/ServiceMenus
В дополнение к ним у каждого пользователя может быть свой набор действий в каталоге:
~/.local/share/kservices5/ServiceMenus
Создавать свои desktop-файлы для действий или скачивать их откуда-нибудь лучше всего во второй каталог.
В Dolphin есть графический интерфейс для управления контекстными действиями: Настройка -> Настроить Dolphin -> Действия:
Нажав кнопку «Загрузить новые действия», можно попасть в стандартную панель скачивания всякой всячины с узла store.kde.org, среди которой попадаются интересные и полезные вещи.
Там, например, можно найти действие, которого явно не хватает в стандартной поставке Dolphin — установку понравившейся картинки фоном рабочего стола. За это теперь отвечает пункт «Set As Wallpaper»:
Также я установил действие шифрования и дешифровки файлов:
Это создаёт рядом файл с таким же именем и добавленным суффиксом .gpg, он зашифрован с помощью утилиты KGpg.
Некоторые действия дают возможность играться с файлами и каталогами. Например, здесь я с помощью действия «Edit description» изменил тип папки screens со стандартного folder на shots, а через действие «Folder Color» окрасил папку в фиолетовый цвет:
Но легче всего понять концепцию действий, создав собственный desktop-файл для него.
Создание контекстного действия для Dolphin.
Если вы уже устанавливали контекстные действия через настройки Dolphin, откройте папку ~/.local/share/kservices5/ServiceMenus. Если этой папки нет, просто создайте её.
Вот захотелось мне сделать такое действие, чтобы удобно было редактировать текстовые файлы от имени root. Для этого я создал файл с названием edit-from-root.desktop. Называть файл можно как угодно, главное — добавить суффикс .desktop. Вот что я поместил в этот файл:
Первая секция создаёт пункт контекстного меню с указателем на действие (Actions). В строке MimeType можно указать типы файлов, для которых будет отображаться действие.
Вторая секция описывает само действие. Строка Name задаёт текст, которым будет подписано действие в контекстном меню. Ну а Exec содержит команду, которую нужно выполнить. Сюда можно вписывать те же команды, что вводятся в терминал, или путь к какому-нибудь скрипту.
Мой desktop-файл открывает Konsole, в нём запускает редактор nano с правами рута, которые он получает через sudo и ввод пароля:
Теперь кое-что посложнее. Часто бывает так, что перед редактированием файла хочется на всякий случай сохранить его резервную копию. Вручную это делается так: вызов контекстного меню файла -> «Копировать» -> «Вставить» -> ввод нового названия файла. Я же написал такой desktop-файл:
Разумеется, нужно создать указанный в Exec скрипт:
Теперь клик по действию «Save state» создаёт копию файла с добавленным к имени суффиксом, который состоит из собачки @ и текущей даты и времени с точностью до секунды:
Автоматизируйте свой файловый менеджер.
Как видно, в контекстные действия можно обернуть почти всё что угодно. С их помощью вы будете в пару кликов мышью конвертировать файлы из одного формата в другой, шифровать их, изменять, отправлять на имейл, хостинги, облачные хранилища. В сочетании с KDialog и Bash вы получаете мощный инструмент автоматизации рутинных задач.
P.S.
Хотели бы ещё статей про KDE? Напишите в комментариях, о чём хотелось бы почитать или узнать.