My personal KDE service menus collection
This project started after sharing my first service menu, which was a simple example created for a blog post, on the KDE-store website to make it available to everyone.
It wasn't my first service menu but the first I publicly shared, and after getting the first interested comments by the community, I decided to publish other services that I use almost daily to speed up common tasks from the command line.
As soon as I realized that they could be better integrated into the KDE/Plasma environment through the KDE store, I re-arranged the material to provide a better experience to everyone having the same needs.
Growing them in number, I also worked release by release to optimize the whole process, making it easier to manage and allow me to quickly publish a new package in case of fixes.
At the end I redacted my personal guidelines:
Exec
key of the desktop file;Although I have been able to achieve the last two points only lately (February, 2024), these are, or will be, the common features for of all the published services.
My personal KDE service menus collection includes the following scripts:
There are several ways to install the service menus listed in this repository, the best option is always using the Pling service directly from Dolphin or Discover, but in case something goes wrong during the install, the manual procedure helps to identify a particular issue.
To make it work under KDE Plasma 6 must complete the following steps first:
qtchooser
packageqmake6
installedqtchooser -install qt6 $(which qmake6)
export QT_SELECT=qt6
The archive contains a Makefile which can be used to install the content with ease,
just access the {{service}}
subfolder with the terminal and type:
$ make install
All of them are available at the KDE store and in the connected sites (Opendesktop, Pling), that way the installation can be easily performed using the proper Dolphin interface available among the settings:
Settings > Services > Download new Services
Just fill up the text box with the service name and, once found, install it from that interface.
The compressed archive can be downloaded from Pling or the other twin websites, and can be used in two ways:
Makefile
included;servicemenuinstaller
command;Let see them in details.
So after extracting the archive:
$ tar -xvf <archive-name.tgz>
And entered the folder:
$ cd <project_folder>
The following command can be launch to install the service menu:
$ make install
To remove the service, from within the same folder:
$ make uninstall
This is a Dolphin utility which automatically install the archives downloaded from Pling/KDE-store.
$ servicemenuinstaller install <archive-name.tgz>
To uninstall it must use the same archive and run the command:
$ servicemenuinstaller uninstall <archive-name.tgz>
To install a service manually, if not otherwise advised, it's just easy as copying the .desktop file under the local folder:
Once cloned the repository locally:
$ git clone https://github.com/fabiomux/kde-servicemenus.git
Enter the project folder:
$ cd kde-servicemenus
Build the archive for the wanted project using as name the related folder:
$ make <project_name>
Install it using the Dolphin utility:
$ servicemenuinstaller install <archive-name.tgz>
You can use the same archive to uninstall the service if not needed:
$ servicemenuinstaller uninstall <archive-name.tgz>
Besides reporting bugs or asking for new features in the issue queue, another way to lend your help to the project is translating the strings used within the service menus.
To make the services full compliant to a particular language, I created a system to embed the strings directly within the exec line and generate a different package for each of them.
It is still at an early stage and the old services should be re-converted to take advantage of this
system, but can follow the progress looking at the _locale
subfolder that hosts the translations with
the following structure:
_locale/<service_folder>/<language_code>.yaml
The placeholders are quite self-explanatory, all the translations are based on the en.yaml
file and
respect the YAML format.
More info is available at: