If you are using Konqueror and have not used custom service menus, you are missing out. Just like the Nautilus Scripts in Nautilus, Konqueror also has the ability to customize the context menus. This post will show you how to do it.
We are going to create two different kind of service menus – one will create an item in the action part of the right click menu. The next type will create a submenu in the ‘actions’ menu with multiple menu items. Hopefully, you will get an idea about how to do it by yourself.
Single Item Service Menu
This service menu will create a menu item in the Action section of the context menu for all ISO files. For this to work as intended, the mimetype for ISO file must be application/x-iso .
- Open ~/.kde/share/apps/konqueror/servicemenus folder
- Create a file with the name ‘PlayISO.desktop’ – the name can be anything – but the extension must be ‘.desktop’
- Enter the following content…
[Desktop Entry] ServiceTypes=application/x-iso Actions=PlayISOInXine [Desktop Action PlayISOInXine] Name=Play ISO File in Xine Icon=player_play Exec=xine -pq --no-splash dvd:/%f
Now lets see a line by line explanation of the code.
- [Desktop Entry]
- Start the file with this line.
- This decides which all file types must this service menu be shown to. You can find the mimetype for various files by taking Control Center > KDE Components > File Associations. Then search for the extension in the given text field.
- Name of the action – this will be defined in the next line
- [Desktop Action PlayISOInXine]
- The definition of the ‘PlayISOInXine’ action goes here.
- Name=Play ISO File in Xine
- The text to be shown in the menu item.
- The icon to be used in the menu. The icon can be an absolute path or the file name of an image in your current theme(for example, if you are using Crystal SVG theme, then the images you can use is in the folder ‘/usr/share/icons/crystalsvg/16×16/actions’).
- Exec=xine -pq –no-splash dvd:/%f
- The command to be executed when the menu item is clicked. The %f stands for the full name of the file. The other options are listed in the documentation.
This is the end result…
Submenu Service Menu
This sample will give you the option to convert the selected html file to a plain text file or a compressed archive. The code looks like this…
[Desktop Entry] ServiceTypes=text/html Actions=convertToText;convertToZip X-KDE-Submenu=Convert [Desktop Action convertToText] Name=Convert To Text Icon=txt Exec=lynx -dump "%f" > "`dirname "%f"`/`basename "%f" ".html"`.txt" [Desktop Action convertToZip] Name=Compress as Zip Icon=tar Exec=zip "`dirname "%f"`/`basename "%f" ".html"`.zip" "%f"
Again, a line by line explanation…
- [Desktop Entry]
- You know.
- This is only for HTML files – so we specify the mimetype as text/html
- We have two different actions instead of just one as in the last case. So we provide the name of both actions separated by a ‘;’.
- This will make sure its shown in a submenu – and that the name of the submenu is Convert.
- [Desktop Action convertToText]
- Defining the first action – convertToText
- Name=Convert To Text
- The label of the menu item
- And its icon
- Exec=lynx -dump “%f” > “`dirname “%f”`/`basename “%f” “.html”`.txt”
- This command will convert a html file to a text file and put the resulting file in the same folder as the html file.
- [Desktop Action convertToZip]
- Defining the next action – convertToZip
- Name=Compress as Zip
- And Icon
- Exec=zip “`dirname “%f”`/`basename “%f” “.html”`.zip” “%f”
- The command to compress the html file as a zip file.
If done correctly, it should look something like this…