вторник, 31 марта 2009 г.

Как создать пункты контекстного меню в KDE

Как создать пункты контекстного меню в KDE | Kubuntu

При клике правой кнопкой на файлах, в выпадающее меню можно добавлять собственные пункты. Для этого надо создать специальные .desktop файлы по следующим путям:
В KDE 3 ~/.kde/share/apps/konqueror/servicemenus/
В KDE 4 ~/.kde/share/kde4/services/ServiceMenus/
Вот пример пункта меню для отправки файла через блютуз в KDE 4. Поскольку родной блютуз остался выкидышем современных технологий, я использую программу отправки из гнома.

[Desktop Entry]
Type=Service
Actions=bluetooth;
ServiceTypes=KonqPopupMenu/Plugin,all/allfiles
X-KDE-Priority=TopLevel

[Desktop Action bluetooth]
Exec=gnome-obex-send %U
Icon=preferences-system-bluetooth
Name=Отправить через bluetooth

Теперь немного пояснений.
Раздел [Desktop Entry]
Type - тип .desktop файла должен быть Service.
Actions - тут через точку с запятой перечисляются действия (action1;action2;), каждому из которых должен соответствовать раздел ([Desktop Action action1], [Desktop Action action2]).
ServiceTypes - mime-типы файлов, перечисляются через запятую, all/allfiles соответствует всем файлам, all/all всем файлам и каталогам, KonqPopupMenu/Plugin - без этого срабатыает не на всех типах файлов.
X-KDE-Priority - это нужно для kde4, я не совсем понял для чего.
X-KDE-Submenu=подменю - этот параметр следует добавить, если хочется заключить действия в отдельное подменю с именем "подменю".

Раздел [Desktop Action имя]
Exec - команда на запуск, %U является именем файла, на котором мы вызвали меню.
Icon - имя иконки.
Name - текст, отображаемый в качестве пункта меню.

Если необходимо создать пункт для всех пользователей, а не только для текущего, то создаем файлы не в ~/.kde/, а в /usr/ по аналогичным путям.

Комментариев нет: