A highly personal take on KDE vs. Gnome over two decades

This is a confession. Feel free to ignore it, there is nothing truly new in here, and pretty much all arguments are well-known. I merely summarize them from my own, very personal point of view and will skip many of the other differences that are not important to myself. For example, I certainly won’t rehash the old GTK vs. Qt debate, which has gained near-religious tendencies in the past1.

The trigger for this post was that, after setting up my new ThinkPad X1 Yoga Gen 4 (with the WQHD screen) first with Debian 10 and switching to Ubuntu 20.04 LTS after it became available2, I had decided to stick to the default Gnome setup and see how well it works for me. On my desktop systems, I have run KDE for a long time, but every now and then, I try Gnome again (mostly on my current laptop). However, 6 months later, I have installed KDE as my main desktop environment again even on the laptop.

Why I keep trying Gnome:

  • Gnome looks nicer in many small ways (especially with Ubuntu integration) and is often more polished in countless details.
  • Integration with different services, for example fingerprint authentication, keyring (with PAM and SSH agent), Nautilus with gvfs subsystem transparently mounting remote (e.g. SMB) shares, and others, is mostly more advanced or available more quickly on Gnome. There are of course counter-examples like the helpful KDE Connect that originated on the KDE side and was later ported to integrate with Gnome.
  • The Gnome infrastructure and core parts like gdm3 use modern infrastructure components more quickly, such as deep systemd integration with control groups for process management, flatpak portals, etc. KDE does, usually, converge towards using the same components (and sometimes leads), but usually Gnome is quicker to benefit from such enhancements.
  • Most major distributions use it as their standard, and therefore more diverse developer effort will go into Gnome polishing and integration in the near / mid-term future.

Why I occasionally explicitly turn away from KDE:

  • There were some bad decisions/directions in the past:
    • The first versions of Plasma were a huge step backwards in usability, performance, and stability. With recent versions of Plasma 5, this has returned to the proven stability and polish of KDE 3.x times and so it is again a highly productive and stable desktop. But the interim years were too long and too painful, and many people turned away because of that (I did multiple times).
    • Desktop search has been a disaster for too long, especially in the long interim years of Nepomuk, the hoped-to-be-semantic desktop thingy. It came out of a research consortium with too many partners, never achieved its promise, yet made the rest of the desktop slow and unstable. Oh, and basic functionality like file search was broken for many years.
  • The eternal kio vs. gvfs debate: while kio may be technically neat on the API level for KDE-native applications and have efficient, flexible streaming concepts as well as some really cool virtual filesystems (the audiocd:/ integration was one of the coolest and most useful tricks in KDE 2.2 - already in 2001…), it doesn’t do anything useful for non-KDE applications. Yes, if a double-click on a remote file in Dolphin starts a non-KDE app, it will “work” by Dolphin copying the file over to a local cache under /tmp and then start the application with that file. But do I want to do that for unpacking a large archive that is available on a fast (LAN) network share, or for a multi-GB video file? Certainly not! gvfs, on the other hand, supports pretty much the same virtual file system types (ok, not all of the cool, smile-inducing ones kio does…), but in a highly useful level of abstraction: as a normally mounted FUSE path that is immediately accesible to all applications after Nautilus causes the resources to be mounted initially. That’s what works well in practice.

Why I still come back to KDE:

  • Configurability, configurability, configurability. While I don’t have to (and certainly don’t) use every knob available, there are some tweaks to my desktop setup that are highly subjective and personal, but make my own workflow easier and use of the desktop more seamless. Some specific examples that I personally use:
    • Virtual desktops with quick switching and auto-restore of opened windows after logout/login (that is even the default) – and I am only beginning to get into actively using Activities for more distraction-free work.
    • Did I mention that you can configure which options are shown with Ctrl-Alt-Del, which one is the default, and that restart and shutdown are there by default? On Gnome I have to click through about 3-4 stages to get there. Why, actually?
    • Dolphin is great, as I can tweak the file attributes it displays and many other things I rely on on a daily basis. Oh, and the very helpful (because fast!) search-as-you-type / type-ahead behaviour is still the default – in contrast to not even being an option as in Nautilus, which requires installing a patched version on every update. I actually know how my file hierarchy is set up and can navigate much more quickly by typing the start of directory/file names in each level – and it seems a lot of other people can too. If I don’t know where a file is or it’s deep down in the tree, I can always hit Ctrl-F and go for it, or use Krunner even more quickly. Gnome doesn’t even give me the option without patching.
    • Power / sleep behaviour can be configured in depth, which is espcially important for laptops used in a variety of cases (connected to a dock with external screen, in presentation mode, while travelling, etc.).
    • And yes, there still is a systray that works with all applications without special tricks.
  • Krunner triggered with Alt-F2 or even more quickly Alt-Space: for ages, this has been the single most important tool for improved productivity. It has many options to tweak to a personal level (of course), does file search (finally, with Nepomuk/strigi/etc. abandoned, the faster and much more stable baloo now works again as desktop search engine), is a keyboard-bound window and browser tab switcher (just type a few letters of the window title / tab name and it will auto-complete and switch to the window/tab when pressing enter), starts media players, is a fast calculator, and has many more addons. If you haven’t seen it yet, I can much recommend the “Web Shortcuts” – typing Alt-Space leo:whatever is by far the fastest way to get a translation (English/German in this case), as gg:whatever or dd:whatever takes fewer keypresses then first switching to the browser window, typing Ctrl-T Ctrl-L and then the search terms (and less hand movement as well); you get my picture.
  • Some really great KDE apps like Digikam. While they can of course be used on a Gnome desktop as well, they just integrate a little better on a KDE desktop.

For some of the continued annoyances with KDE, there are easy workarounds that I use personally and also set up for my family:

  • When accessing lots of network shares, simply use Nautilus or Nemo instead of Dolphin, potentially even configured as the default handler for files. This will use gvfs and make the remote files transparently accessible to arbitrary applications.
  • Logging in with sddm and a fingerprint reader is still (since around 2004 with kdm…) ugly. While it works reasonably well for screenlock (though that also requires a double Enter press), login continues to be broken/non-nice. And the gdm integration with KDE/Plasma also leaves something to be desired, so that is not an easy workaround either.

Summary

Gnome is great, I like it a lot and it has driven the Linux desktop forward like no other project in the past. Gnome continues to innovate and through trial&error keeps discovering some really nice additions to Linux desktop use and productivity (e.g. the extensions concept is in principle good as it lowers the bar for customizing those parts of the desktop that extensions can touch). Gnome is also opinionated, and that makes for a more consistent experience, both within a single desktop setup and across different setups – the latter making it easy to use a Gnome desktop in its default configuration on a new machine or one set up by another user. Gnome tries hard to be a desktop for the majority userbase, and I argue that it succeeds with this goal.

KDE on the other hand is configurable (I keep saying that, I know…) to a massive extent without installing extensions, just in its out-of-the-box dialogs and options. That means that it can be more easily tweaked and will lead to more inconsistent behaviour, especially across differently configured desktops. A KDE desktop is personal, and often grown over many years. KDE is better suited for experts who spend a lot of time with their desktops and benefit from learning where those options are, what they do, and adapting them to a personal workflow. In time, that makes it more productive to use. KDE really is noticably faster for me to use. My fingers stay more on the keyboard and I need fewer explicit steps to achieve many of my common tasks.

If I want to draw a comparison (why is bad as such comparisons usually are), then Gnome is like iOS while KDE is like Android. And as on the phone side, I definitely prefer Android for similar reasons (flexibility), I keep being drawn back to KDE on the desktop.


  1. Yes, Qt has a much nicer API, yes, the license situation used to be tricky, no C++ does not necessarily lead to more bloat, but yes, C++ has a far steeper learning curve and leads to a smaller developer base, etc. ↩︎

  2. As it now supports all the hardware bits and pieces out-of-the-box, including multi-channel sound and fingerprint sensor – so no post on hardware support needed. ↩︎

René Mayrhofer
René Mayrhofer
Professor of Networks and Security & Director of Engineering at Android Platform Security; pacifist, privacy fan, recovering hypocrite; generally here to question and learn