I've Googled around, but can't seem to find any consistent tutorials or documentation that describe how to do this (in my case, on Kubuntu 15.10). I want to add custom scripts to the context menu in Dolphin (a la nautilus-scripts for Nautilus). For some reason, when I follow any instructions I find, I'm only able to make the context menu appear when right-clicking the relevant .desktop file. How can I solve this?
3 Answers
KDE Service Menus
In KDE-speak a "servicemenu" is a special entry that appears in a context menu (or other context-based interface) for a file (or for directory), depending on the type of files that are selected.
Service Menus with Dolphin:
- https://develop.kde.org/docs/dolphin/service-menus/
- https://www.kubuntuforums.net/showthread.php?25740-Service-Menus-with-Dolphin
Service Menus Missing: https://forum.kde.org/viewtopic.php?f=223&t=128621
Paths
KDE Frameworks 5 is looking services from:
kf5-config --path services
Executing:
$ kf5-config --path services
/home/user26687/.local/share/kservices5/:/usr/share/kservices5/
That is:
User servicemenus are:
$HOME/.local/share/kservices5/ServiceMenus/
System servicemenus are at
/usr/share/kservices5/ServiceMenus/
Desktop files
Servicemenus are defined using .desktop files. Desktop Entry Specification: https://standards.freedesktop.org/desktop-entry-spec/latest/
Image: Sample of the Desktop Entry Specification keys/codes
An example - simple servicemenu with file path:
Making: $HOME/.local/share/kservices5/ServiceMenus/myFirstServiceMenu.desktop
If the directory doesn't exist the user can make it !
[Desktop Entry]
Type=Service
Icon=smiley-shape
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/allfiles;
Actions=helloWorld;
Encoding=UTF-8
[Desktop Action helloWorld]
Name=Hello with path information
Icon=smiley-shape
Exec=kdialog --msgbox "Path is %f"
Image: a servicemenu at the right place.
Closing all Dolphin windows and starting a new one. When right clicking a file:
On Ubuntu 16.04 with KDE (Kubuntu) one appropriate directory for *.desktop files is /usr/share/kservices5/ServiceMenus/
(compare the output of dpkg -L ark to find similar file locations concerning the ark submenus)
- 77,855
- 103
