I run the KDE Plasma Desktop on my laptop as a result of it is a flexible environment with numerous choices for personalisation. Having selections in your desktop is about extra than simply having numerous menus and buttons to activate or deactivate. The factor I really like most about KDE Plasma Desktop is the power so as to add my very own options to it. One cause that is potential is OkayServices, a easy however highly effective plugin framework for dealing with desktop providers.
In the KDE Plasma Desktop, there’s normally a contextual menu out there whenever you right-click on one thing, corresponding to a listing or a file. You can add gadgets to the right-click menu by creating your individual OkayService, and you do not want something greater than a rudimentary understanding of Bash to make it work.
First, create a brand new listing in your service menu:
$ mkdir -p ~/.native/share/kio/servicemenus
Add a .desktop
file:
$ contact ~/.native/share/kio/servicemenus/good day.desktop
Open the good day.desktop
file in a textual content editor. A .desktop
file is a small configuration file utilized by the menu system of the Linux desktop. Here’s a easy OkayServices file that generates a good day.txt
file within the listing you choose:
[Desktop Entry]
Type=Service
MimeType=inode/listing;
Actions=Hello
[Desktop Action Hello]
Name=Say good day
Icon=/usr/share/icons/breeze-dark/actions/symbolic/file-library-symbolic.svg
Exec=contact %f/good day.txt
-
The first configuration block tells your system that this
.desktop
file is a service moderately than, as an example, an software. -
The
MimeType
tells the Plasma Desktop to solely present this motion as an possibility whenever you right-click on a folder, not a file. -
The
Actions
line identifies what motion is taken when this service is activated. The identifyHello
is unfair, and refers back to the subsequent configuration block, which is aDesktop Action
configuration with the identifyHello
.
Here’s what the following configuration block means:
-
The
Desktop Action
definition namedHello
. -
The values for
Name
andIcon
seem within the right-click menu. -
The
Exec
line is the command you wish to run when your service is chosen. As a easy demonstration, this.desktop
file simply creates an empty file known asgood day.txt
within the location that you just right-clicked on (represented by the particular variable%f
).
Save the .desktop
file, after which make it executable:
$ chmod +x ~/.native/share/kio/servicemenus/good day.desktop
Start a brand new occasion of the Dolphin file manager and create an empty folder. Then right-click on the folder and navigate to Actions. In the Actions menu, there is a new service out there, and it is known as Say good day as a result of that is what your .desktop
file has set within the Name
discipline.
Look within the folder after working the service to see the empty good day.txt
file that is been created.
Mimetypes
This pattern OkayService solely works on directories as a result of the .desktop
file defining the service specifies the Mimetype: inode/listing
. That’s what tells Dolphin to not show the service whenever you right-click on a file.
Using mimetypes, you possibly can create extremely particular providers based mostly on what sort of file system object you choose whenever you right-click. The perl-file-mimeinfo
package deal gives a mimetype
command, which you should use to get the mimetype of any file. Install it together with your distribution’s package deal supervisor, after which attempt it out:
$ mimetype instance.txt
instance.txt: textual content/plain
$ mimetype Photos/instance.webp
Photos/instance.webp: picture/webp
Executables
I demonstrated a easy “hello world” instance on this article, however OkayServices may be as complicated as you want them to be. The Exec
line of your OkayService .desktop
file can launch any software or script, and the %f
variable ensures that the goal or vacation spot of no matter will get launched is what you have right-clicked on.
For my very own workflow, I used to make use of Planter to rapidly assemble a venture atmosphere. Lately, although, I’ve switched to Ansible and this OkayService:
[Desktop Entry]
Type=Service
MimeType=inode/listing;
Actions=planter
[Desktop Action planter]
Name=Create venture listing
Icon=/usr/share/icons/breeze-dark/actions/symbolic/folder-new-symbolic.svg
Exec=ansible-playbook /dwelling/seth/Ansible/playbooks/standard_dirs.yaml -e dir=%f
Here’s my Ansible playbook:
---
- hosts: localhost
duties:
- identify: Create directories
ansible.builtin.file:
path: "{{ item }}"
state: listing
with_items:
- '{{ dir }}/video'
- '{{ dir }}/edit'
- '{{ dir }}/audio'
- '{{ dir }}/title'
- '{{ dir }}/render'
- '{{ dir }}/graphic'
- '{{ dir }}/picture'
When I right-click on a listing and choose Create venture listing, the subdirectories I would like for media tasks are added to that listing. It’s a easy characteristic for a desktop, and just a little distinctive to a selected workflow, but it surely’s the characteristic I would like. And because of OkayServices, it is a characteristic I’ve. Try out OkayServices within the KDE Plasma Desktop for your self, and add the characteristic you need.