19

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?

user26687
  • 15,174
JesseTG
  • 383

3 Answers3

25

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:

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

stollr
  • 163
user26687
  • 15,174
5

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.

Zanna
  • 72,312
bbbb
  • 51
2

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)

Anwar
  • 77,855