During the weekend I found a news message on my Gentoo laptop which said that KDE4 had reached EOL, and that it was recommended to upgrade to Plasma 5. So I did that, hoping for the best, but now I'm finding myself downgrading back to KDE4 for now.
I'll describe some of my reasons, though I would love to find some solutions for them. I do realize that KDE4 is going to go away sooner rather than later, and this is inevitably just a temporary measure. However, as things stand right now, I feel like I would have to invest a significant amount of time and effort into getting things to work the way I want them to, and I just don't have that time right now.
No migration of KDE4 configuration
This was the first thing that took me by surprise. I didn't think the difference between KDE4 and Plasma 5 was as big as it was between KDE 3 and 4, and I honestly expected this to work out of the box. Particularly since most settings still look the same, Plasma widgets are pretty much the same, and in my understanding, the architecture of the whole thing is mostly the same, just broken up into packages in a different way.
So I had to manually re-enter all keyboard shortcuts, virtual desktop configuration, regional settings, recreate desktop widgets, keyboard settings, and who knows what else, all in the same “System settings” application which looks almost exactly the same as in KDE4, only with a more flat theme.
Extremely verbose debug messages in syslog
KDE has always been very verbose. With KDE4, all those verbose messages are printed out on stderr, which normally ends up in ~/.xsession-errors. When I leave my laptop running for a few months at a time, I routinely end up with an .xsession-errors in the orders of gigabytes. Most of that is just kdeinit4, konsole, kbuildsycoca4, or some such spitting out the same debug messages over and over again.
I'm not aware of using any special debug builds, mind you, just regular KDE4 installed on Gentoo from the standard portage tree, with mostly default USE flags.
The problem with plasma5 is that all of this spam ends up in the syslog. That's right – debug messages produced by a graphical user session, which will never ever be useful to anyone else than the user who is running that session (although even that is extremely unlikely), end up in the global system log. The one to which that user does not even have access.
I find this extremely annoying, because I often routinely look at my system logs when diagnosing problems with the network connection, graphics drivers, and whatnot. If 90% of the contents of the syslog are made up of the same damn debug message from some KDE component, that makes them next to useless, because that makes it a lot more difficult to dig out any meaningful information.
I consider this behavior a bug for reasons I explained, and I didn't find any corresponding ticket for this, so I opened one.
Broken session management
I've always had the session management feature set to restore the last session on login. I have a favorite setup of konsole windows and tabs on various desktops, Amarok on another, and a few other things, and I like not having to think about it. However, as I was trying to enable features incrementally, I found myself having to log out and back in to restart the whole Plasma session, and as it turns out, this session management feature stopped working.
A quick search lead me to bug #349481 in the KDE bugzilla, which reveals that this is actually a bug in Qt5, which has been fixed in version 5.6, which was released less than a month ago, and will take some time to reach stable distributions. The discussions on that bug, and those linked from there, paint a very bleak picture of session management having always been utterly broken with Qt, even version 4, only KDE4 contained a workaround for that, which was not possible with Qt5 until recently.
And someone hinted that Qt didn't really care because they were going to drop support for desktop...? I don't want to even start thinking about the implications of a step like that.
Broken systray icons
Then there's this whole ridiculousness with self-proclaimed “modern” desktop environments dropping support for old xembed-based systray icons. Now, to be fair, I do agree that it's nice when systray icons are nice and scalable, and integrate well into the DE theme, but on the flip side, not that long ago, every DE had their own API for these fancy modern systray widgets.
So the good old xembed is still the lowest common denominator, and it is still implemented by a bunch of stuff, like the popular Pidgin. I don't use Pidgin myself, but I do use a few programs with this kind of systray widget: redshift-gtk, and virt-manager. It's not that big of a deal with virt-manager, but for redshift-gtk, the systray icon and its pop-up menu is the only user interface element available, which means that when this does not work, I have no way of interacting with redshift.
Five releases in, the maintainers of Plasma backpedaled, and in Plasma 5.5 they re-introduced support for xembed widgets. The problem is, this does not work for me. The icon does show up in the notification area, but it does not make it possible to interact with the application in any way. When I click it, xembedsniproxy spits out some debug messages into syslog (sigh) about receiving mouse click events, but it fails to pass them on to the application itself.
Remember how I mentioned that I was forced to re-create all desktop plasmoid widgets (with CPU / memory / disk / network monitors, which I kind of got used to)? When I drag-and-dropped those widgets onto the desktop, they were created with the smallest dimensions, and looked like this:
Naturally, I tried to resize them, to make them actually display meaningful information. That turned out to be more difficult than it sounds. I could drag them around however much I wanted, but I couldn't find any way to resize them.
In KDE4, plasmoids pop out a handle on the side when you hover your mouse cursor over them, if widgets are currently unlocked. Nothing like that happened on Plasma 5. I did a lot of clicking, dragging, hovering, and who knows what else, and once, the handle actually appeared, allowing me to resize one widget! I couldn't reproduce that, though, so I asked around on IRC, and as it turns out, you need to long-click the widget for the handle to appear.
While this may make sense on touchscreen devices, it's not something anyone would ever do with a mouse. I was actually instructed on IRC to file a ticket for this, which I did.
Lack of configurability of SDDM
SDDM is meant to be the successor of KDM, so I switched the default display manager to it. A fancy user picker greeted me, only I'm not interested in that. I prefer a simple input for the username and password instead. Unfortunately, I didn't find any way to do that, and neither did I find any way to change password echo from bullets to none, which I've had since about forever.
I know, this is mostly just an aesthetic complaint, but it doesn't make any sense to me. And yeah, I know, I can always switch to a different display manager. Sure, but that's yet another thing that will take a certain amount of time and effort.
While we're on the topic of SDDM, there was also a UX / usability issue – every login screen I have encountered before automatically gave focus to either the username, or the password field. Since there is no username field in SDDM (just a user picker), only a password field, I would expect that this password field would have focus by default. Except it doesn't, you have to click the password field using the mouse. What's even better, the password field was really tiny on my screen for some reason (might be just a problem of the default theme).
Unpredictable widgets and panels
The first time I logged in, it was just with the built-in screen. Then I arrived to the office, and plugged in the external monitor I have there, with a higher resolution, and cycled through the various configurations of displays to only the external monitor. For some reason, Plasma refused to display the default panel containing the taskbar, systray, and whatnot in this configuration. I spent a few minutes just cycling through different configurations, both using the dedicated keyboard shortcut, and also entering the settings manually through the “System settings” application, to no avail. Plasma bone-headedly refused to display the taskbar on the large screen, unless it was mirroring the small screen at a lower resolution.
This actually went away the next time I logged out and back in, but now all widgets that were supposed to be centered (like krunner), or things aligned to the right (like notification pop-ups, or systray widget pop-ups) were aligned according to the dimensions of the smaller screen (which was off), which means the “centered” widget was significantly off-center, and the right-aligned ones were in 3/4 of the screen.
This problem also went away after a few logout/login cycles, but it it didn't really boost my confidence in the new DE – what's to prevent Plasma from pulling this stunt on me again sometime in the future?
Broken compose key sequences in Qt5 applications
This is one of the more serious ones in my book. All Qt5 applications have somehow broken input handling. I use the compose key all the time (who ever needs caps lock anyway, other than internet trolls), and it is totally natural for me to use it to insert fancy unicode quote marks, en- and em-dashes, and all kinds of accented characters without having to switch to the native keyboard layout of the respective language.
While accents seem to work (at least those few that I have tried), Qt5 applications fail miserably when I try to enter one of the fancy punctuation marks. Quotation marks, such as those inserted by compose + < + ", or compose + > + ", just do not work at all – when I hit this sequence of keys, nothing happens.
It's even worse for en-dashes and em-dashes; when I type those, the whole input field just goes crazy, hides whatever it interpreted it as, and moves the cursor forward by two places. Apparently, it does not interpret this as a single character, because when I type backspace, it decomposes the thing into something else, which looks like a dot I guess, and I have no idea what the hell is going on there.
I'm just guessing here, but I suspect that this might be because Qt5 no longer uses XIM as the input method (which qtconfig, which, by the way is only available with Qt4, reports as the method used by Qt4 where everything works just fine, but apparently it is deprecated for one reason or another). However, since qtconfig is not available for Qt5, I have no idea how to find out if this is true, and how to configure it to something that will work.
Anyway, I'm not ready to give up my compose key, so any ideas on how to debug this will be appreciated.
Lack of PIM support
This one is not a deal-breaker for me, but it's yet another issue to throw on the already significant pile. Over the years I got kind of used to having my events and holidays show up in the small calendar widget that pops up when I click the clock widget next to the systray. It was never perfect, always just read-only, and it tends to drop out every now and then, but it's there most of the time.
From the looks of it, the new suite of KDE applications that go with Plasma 5 do not appear to contain the PIM bundle – when I enable that USE flag, all it does is install the PIM bundle for KDE4, which doesn't seem to be integrated into the built-in Plasma 5 widgets in any way. There's not even any area in the calendar widget to display events of any kind, just a calendar that doesn't let me enable anything more than week numbers; no holidays, and definitely no calendar events.
And it doesn't respond to the scroll wheel anymore. In KDE4, the scroll wheel offers a quick way of navigating between months, but on Plasma 5, this seems to only work if the cursor hovers over the month selector on the top.
Well, this was my list of grievances, which has forced me to downgrade back to KDE4 for now. But as I said in the beginning, I am well aware that KDE4 is on its way out, and I would actually like to switch to the newer Plasma. The problem is, there just seems to be too much stuff that I'll need to figure out how to work around, involving a bit too many low-level innards for my taste.
In case anyone has any suggestions for the problems I listed here, I'm all ears.