I'm using KDE Plasma… and it's awesome!

For a few weeks now I've been itching to try out KDE Plasma on my laptop. It's not that Plasma is a new experience for me, I've used it countless times in the past at least for a couple of days, but I've always abandoned it because it created strange problems for me, like constant plasmashell crashes or a relatively slow system. After seeing how Plasma 5.21 was a major upgrade, I decided to give it a try and am now writing this from Plasma 5.22 on Arch Linux.

Being an user of Tiling Window Managers like dwm, i3 or herbstluftwm; an Emacs user, and maintaining a collection of dotfiles on GitHub, it may seem strange that I was interested in a Desktop Environment full of bloat, that requires constant use of the mouse and that the only minimalistic thing it has is the wallpaper. Actually, what motivated me to install it was vanity: Plasma is really nice and with its animations it's a joy to use. Obviously I have other motivations, the main one is the automation of certain tasks that in a WM I have to manage myself and do not always work as I would like. I'm talking about power management, the use of multiple monitors, keyboard configuration and other settings, which before I had to handle by editing different system files and see if it worked, and now Plasma takes care of it.

So, one fine day and with an open mind, I installed Plasma on my system. I must say that I tried to get an installation as minimalist as possible, that is, only with the KDE applications that I need; but with the necessary functions for the Desktop Environment to work, because the most minimalist installation available in Arch Linux does not include basic things like audio control or the daemon to control the monitors.

In the end, the installation command looks something like this.

sudo pacman -S plasma-meta dolphin konsole ark dolphin-plugins kcalc kcolorchooser kio-extras spectacle sddm-kcm

Some applications like ark, kcalc or kcolorchooser I don't use very often, but it's good to have them. I install konsole because several KDE applications (dolphin for example) expect to have it installed, but the terminal I use is Alacritty.

Plasma Tiling Desktop Environment

As soon as you install Plasma, it is very convenient to visit the Settings application and start customizing the system, but be careful! Plasma's settings include a lot of options in contrast to the Environment of the foot, and it can take a lot of time to go through all the options that are available there.

The main setting I looked for at the beginning was the keyboard shortcuts. The reason for this is that I wanted an environment that can be operated primarily with the keyboard…. see where I'm going with this? After configuring shortcuts to some applications (emacs, alacritty), and changing some shortcuts that I didn't like (super+q to close, super+space to search), I decided to install the krohnkite plugin, and with it, I got what I was looking for: Plasma Tiling Desktop Environment.

For those who don't know it, krohnkite is a plugin for Plasma 5 that allows to automatically arrange the windows occupying all the available space, acting as a Tiling Window Manager. Very much in the style of dwm it uses by default the famous master and stack layout, but also includes other layouts, my favorite, centered master.

Although not as complete or extensible as a true Tiling Window Manager, krohnkite is a much more pleasant experience to my taste. After removing the window decorations and finding some themes that suit my taste, I ended up with a pretty nice environment, without a lot of unnecessary bloat, and with very cool effects like wobbling windows and very nice animations that, to tell the truth, do improve the quality of life.

The best of Plasma: Krunner

I can't write about Plasma without talking about krunner. For those who don't know it, krunner is a program that can be invoked with a keyboard shortcut and appears at the top of the screen. From here we can search for anything: files, windows, applications, execute commands, interact with plasma, open bookmarks, search the web, search for emojis, search for passwords with Pass, define words, do mathematical calculations, and much more. Krunner is just one way to access this KDE search, which can also be used with the application menu. However, I like krunner better for its more minimalist look and feel and that it doesn't open up a whole application launcher.

The most minimalist will argue, "hey! you can get all that with dmenu and a couple of scripts, in less than 20 lines of POSIX shellscript", and it's true. I myself have among my collection scripts for several of the functions that krunner performs. The big difference is that, with krunner, I have it all in one keyboard shortcut, merged and incorporated into one menu: super+space is all I have to press and I have access to all the functions mentioned. With dmenu each search must be a separate script, to be executed with different keyboard shortcut, this means I have to map several keyboard shortcuts, and being honest, not all dmenu scripts will work as elegantly as krunner does.

Not everything is wonders

Plasma is awesome! As I mentioned at the beginning, in the past I experienced strange bugs like constant crashes. None of that has happened to me in the current version, and everything runs pretty smooth and fast. Still I must be honest and say that not everything is perfect and I have some complaints.

First, there is a strange bug where, sometimes, certain applications open the wrong monitor or some applications lose focus when there are two monitors. It's not the end of the world, but it is strange, almost annoying, to open an application and have it go to the wrong monitor.

Second, I commented that Plasma runs very smoothly… most of the time, but it is true that sometimes, especially when you are making intensive use of the device, menus and panel elements such as the volume slider, take a noticeable time to appear. Again, no big deal, but I can't forget it happens.

I don't think it's a memory leak, but plasmashell tends to progressively increase its RAM consumption. When I turn on the laptop htop it shows a usage of about 700 MB. Almost two hours later and without any other program open, it is consuming a little more than 1 GB. If I start playing with panels or making changes to the system that consumption goes up more. I haven't done enough experiments to determine under what circumstances the consumption goes up and under what circumstances it goes down, and I'm not too worried as I have plenty of RAM and it hasn't exceeded 1.3 GB with any application open. However, the thorn of that ever increasing consumption is always there.

Finally, and although I understand why this is the case, I would like krunner searches, plugins and themes to be much simpler to write. The simplest plugin for krunner requires knowledge of QML and C++ and the simplest applet for the panel requires writing a couple of hundred lines of javascript, C++ and QML. Compared to my dmenu scripts or my conkys, all using bash, the plasma world looks a lot more complicated. I understand that it is a much more complex project and the APIs they produce are more complex as well, but I wish it could be extended, albeit very simply, with simpler languages and methods.

To conclude

I really find Plasma a very friendly and very pleasant environment to work in. It is not only pretty, it is quite productive and I have managed to mimic the workflow I was looking for. It's true that you have to give up some things like reproducibility (luck taking your configurations to another system) or excessive minimalism, but in exchange you get a solid system that adapts perfectly to your needs and what you want.

I plan to stay on Plasma for a while longer, until a bug appears that makes me flee or until the resource consumption becomes unsustainable, which I doubt will happen someday. Let's see how it goes in the next weeks and when the vacations are over and I return to the work environment where the conditions of use are different, but I think Plasma is here to stay for a long time in my system.