KDE. Контекстное меню Dolphin, полезные скрипты и создание собственных действий.
На десктопных операционных системах вы постоянно сталкиваетесь с файлами. Вы их скачиваете из Сети, открываете, копируете, удаляете, архивируете, пересылаете кому-то по имейлу или мессенджеру. Контекстные действия Dolphin — мощное средство для облегчения частых манипуляций с файлами. Их вы видите всякий раз в составе меню, когда кликаете правой кнопкой мыши по файлу или папке.

Как это работает.

Одна из особенностей KDE и Plasma — обилие текстовых конфигов и скриптов различного типа, которые определяют вид и поведение среды. Контекстные меню Dolphin не исключение. Часть действий из меню встроены прямо в код Dolphin, но остальные генерируются «на лету» из специальных файлов.

Контекстное меню Dolphin

Общесистемные контекстные действия хранятся в каталоге:

/usr/share/kservices5/ServiceMenus

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

~/.local/share/kservices5/ServiceMenus

Создавать свои desktop-файлы для действий или скачивать их откуда-нибудь лучше всего во второй каталог.

В Dolphin есть графический интерфейс для управления контекстными действиями: Настройка -> Настроить Dolphin -> Действия:

Контекстное меню Dolphin

Нажав кнопку «Загрузить новые действия», можно попасть в стандартную панель скачивания всякой всячины с узла store.kde.org, среди которой попадаются интересные и полезные вещи.

Там, например, можно найти действие, которого явно не хватает в стандартной поставке Dolphin — установку понравившейся картинки фоном рабочего стола. За это теперь отвечает пункт «Set As Wallpaper»:

Контекстное меню Dolphin

Также я установил действие шифрования и дешифровки файлов:

Контекстное меню Dolphin

Контекстное меню Dolphin

Это создаёт рядом файл с таким же именем и добавленным суффиксом .gpg, он зашифрован с помощью утилиты KGpg.

Некоторые действия дают возможность играться с файлами и каталогами. Например, здесь я с помощью действия «Edit description» изменил тип папки screens со стандартного folder на shots, а через действие «Folder Color» окрасил папку в фиолетовый цвет:

Контекстное меню Dolphin

Но легче всего понять концепцию действий, создав собственный desktop-файл для него.

Создание контекстного действия для Dolphin.

Если вы уже устанавливали контекстные действия через настройки Dolphin, откройте папку ~/.local/share/kservices5/ServiceMenus. Если этой папки нет, просто создайте её.

Вот захотелось мне сделать такое действие, чтобы удобно было редактировать текстовые файлы от имени root. Для этого я создал файл с названием edit-from-root.desktop. Называть файл можно как угодно, главное — добавить суффикс .desktop. Вот что я поместил в этот файл:

[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=text/*
Actions=EditFromRoot
 
[Desktop Action EditFromRoot]
Name=Edit from root
Name[ru]=Править от рута
Exec=konsole -e sudo nano -w %U

Первая секция создаёт пункт контекстного меню с указателем на действие (Actions). В строке MimeType можно указать типы файлов, для которых будет отображаться действие.

Вторая секция описывает само действие. Строка Name задаёт текст, которым будет подписано действие в контекстном меню. Ну а Exec содержит команду, которую нужно выполнить. Сюда можно вписывать те же команды, что вводятся в терминал, или путь к какому-нибудь скрипту.

Мой desktop-файл открывает Konsole, в нём запускает редактор nano с правами рута, которые он получает через sudo и ввод пароля:

Создание контекстного действия для Dolphin

Теперь кое-что посложнее. Часто бывает так, что перед редактированием файла хочется на всякий случай сохранить его резервную копию. Вручную это делается так: вызов контекстного меню файла -> «Копировать» -> «Вставить» -> ввод нового названия файла. Я же написал такой desktop-файл:

[Desktop Entry]
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
X-KDE-Priority=TopLevel
Type=Service
MimeType=all/all
Actions=SaveState
 
[Desktop Action SaveState]
Name=Save state
Name[ru]=Сохранить состояние
Exec=~/.local/share/kservices5/ServiceMenus/save-state.sh

Разумеется, нужно создать указанный в Exec скрипт:

#!/bin/bash
 
file_name=$1
cp "$file_name" "$file_name"@$(date +%Y.%m.%d-%H:%M:%S)
 
exit 0

Теперь клик по действию «Save state» создаёт копию файла с добавленным к имени суффиксом, который состоит из собачки @ и текущей даты и времени с точностью до секунды:

Создание контекстного действия для Dolphin

Автоматизируйте свой файловый менеджер.

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

P.S.

Хотели бы ещё статей про KDE? Напишите в комментариях, о чём хотелось бы почитать или узнать.


Комментарии отключены