11

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?

11

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.

Creating (Konqueror) KDE Service Menus: https://techbase.kde.org/Development/Tutorials/Creating_Konqueror_Service_Menus

Service Menus with Dolphin: https://www.kubuntuforums.net/showthread.php?25740-Service-Menus-with-Dolphin --> KF5 Service Menus: https://www.kubuntuforums.net/showthread.php?25740-Service-Menus-with-Dolphin&p=367207&viewfull=1#post367207

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: Desktop Entry Specification has the meaning of the keys/codes 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. Image: a servicemenu at the right place.

Closing all Dolphin windows and starting a new one. When right clicking a file:

Image: sample of the servicemenu action

  • Please add the relevant part of the answer here and provide the links only for reference. – Anwar Jun 16 '17 at 13:57
2

The following worked for me on Ubuntu 16.04

place the scripts in the directory ~/.local/share/kservices5/ServiceMenus/

run kbuildsycoca5

scripts will be visible in new dolphin instances.

1

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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.