GNOME considered harmful

by Martin Cernohorsky

Back to the root node


Introduction

For several decades, the computer GUI, or Graphical User Interface, is considered to be almost integral part of the operating system. Both the concepts and the implementation principles have evolved over time — for good and for bad — and significantly deviated from their initial look and feel. However, not all GUIs are created equal and not all of them are suitable for everyone or for doing every kind of work to get done. We will focus on the operating environments built on top of the X11 graphical interface (Wayland included) and things closely relevant.

The Evolution

When they invented the X-Window system deep in the 1980s, they understood, that the needs of computer users are different, that the ways humans interact with computers are different, that people need their work to get done and to get various tasks done by various people, and thet different approaches to the human-computer interaction are needed. As a result, the X-Window did not impose ANY ideas on how to operate the GUI on the user; it leaves the window, icon, or desktop management to separate applications like Window Manager. The first wave of window managers, based on well thought-out libraries with properly designed abstraction layers (Athena Widget, Motif, OpenLook), respected the human behavioral and conceptual diversity by the ability to configure almost all aspects of the GUI (though the default settings were sometimes quite opinionated and differed wildly between the libraries). As a result, it was possible (with the knowledge of the configuration file formats and a bit of effort) to fine-tune the GUI properties according to one’s needs, wishes and peculiarities, in turn allowing almost seamless interaction of the individual and the computer. At those times, you could perhaps see several individuals sitting in the same room in front of their terminals served by the same system, working with interfaces in a completely different manner, the difference being caused only by difference in their configuration files. And they were happy with it.

Years passed. There were new GUI implementations coming (and sometimes going), some of them pretty good, some worse, but you could always install your preferred oldschool window manager et al. and bring your config files from previous incarnation of your operating environment, and things were the same. Several of the new aplications built using new GUI libraries looked and felt differently, sometimes it was quite anachronistic look inside the old environment, but they were working anyway. Even some of the (relatively) new GUI environment featured a fairly large configurability (Plasma comes to mind), allowing you to modify their behavior pretty close to the properties of your original setting in e. g. twm (though some of the original capabilities were already lost. Therefore the compatibility with your way of working was either mostly preserved with a bit of effort, or fully preserved with somewhat more effort. Until recently.

With the democratization of computing spreading, some of the newly developed GUIs were based on not exactly sound design principles. Some of them were incorporating wrong or misleading assumptions of human concepts for computer interaction and work ergonomy. Some were also pretty intolerant about cooperation with programs written for different GUI stacks. All of this was fine, as there was a competition between the GUI concepts, and stacks or libraries, and as these phenomena were marginal. This changed in the relatively recent past.

There is slowly growing one GUI to rule them all now. A GUI based on single idea on human-computer interaction. A GUI where old key and mouse bindings are not possible. A GUI which arrogantly aisregards your thirty-year history of computing. A GUI which forces you to use The Only One (C, TM) approach to workflow. A GUI that increasingly contaminates applications which decided use its some of its libraries by other components of the GNOME universe. A GUI that is increasingly bound with deep internal workings of the OS, or even of the kernel. A GUI indivisibly bringing various annoyances like systemd, polkit or pulseaudio. And what is worst, a GUI being increasingly bundled as a the main, default, and sometimes the only user interface across majority of linux distributions, and sometimes even outside of linux. As a result, on some devices and platforms, or in some environments (like on your company’s laptop, where you are not allowed to build a different GUI from sources), you are stuck with a single GUI, that’s poorly designed and unsuitable for your work, bloated and inflexible. In other words, GNOME considered harmful at least until it recedes from its dominance.

The Problem

So, now we have an increasingly expanding (and virulent) operating environment with a large number of deficiencies, increasingly being touted as "the" standard for (at least Linux-based) graphical user interface. The deficiencies and complicating factors can be divided to several large groups; none of them are shallow or easily avoided and remediated.

  1. The bundle with other software. There are many large (even bloated) software projects (each consisting of many "packages"), that are difficult to split, or weed out, from a system with GNOME GUI integrated. Those include systemd (large cluttered and complex group of intertwined programs with spaghetti dependences allegedly trying to replace the original and the script infrastructure, those being totally lightweight in comparison with losing functionality in the process), pulseaudio (why on Earth is the pulseaudio consuming 30 percent of the CPU cycles on a decent laptop, when no audio at all is being played, among other questions), or polkit, another far too complex highly bloated software, or the tracker infrastructure, incredibly resource hungry (and potentially unsafe). These components are extremely difficult to get rid of, should the system remain operational (ask the developers of the devuan linux distro about the effort needed to de-systemd debian). Apart from unnecessary complexity, the necessity to learn how to configure, operate and maintain this software, and system resource depletion, sometimes it also breaks compatibility with older software.
  2. The loss of the user interface compatibility itself. The fact that you cannot configure your own mouse and keyboard commands for window and desktop workspace manipulation, that the focus no longer can strictly follow mouse in GNOME, that you cannot provide input into a window which is not on top. Yes, it DOES matter, that you are suddenly left with someone else’s command set, that you lost the ability to use your habits, your workstreams, your approaches to communication with your computer, just because of what? Because of branding? Because of a wish to build a highly questionable "monument" of forcing millions of people to abandon their ways of working because those do not function anymore? An intent to disrupt the society via changing the world to the point where the people who live in it do not recognize it anymore?? There is no technical reason for such a radical cut in functionality, that was already there literally for decades. There is also no ergonomic reason to not allow the users to define their own mouse and keyboard command set and properties. And there is definitely no political reason, apart from a whim to force the users into changing their behavior.
  3. The really feature-stripped and inflexible taskbar, whose GNOME incarnation not only breaks compatibility with many older tools, but, even more importantly, makes life difficult for anyone used to configure everything to fit their actual needs. In the normal world, there was tint2, there was fbpanel, there were many tools and utilities one could use. Hell, even the relatively rigid Plasma’s taskbar is much more usable, than what is left in GNOME. One especially notable feature missing from GNOME is the abilit to move the icons along the taskbar in order to have icons of specific windows in specific places of the taskbar, a feature which greatly contributes to the seamless GUI experience (let me remind you that the original twm window manager allowed you to move the icons to any place on the workspace. Literally.
  4. Various artifacts. Most of them are scattered over many different parts of the system, having little in common, thus being difficult to characterize. An outstanding example would be the inability to forbid GNOME to put icons on the workspace background. Another example of an irritating feature loss (for which there is a workaround, though) is dropping of the support for original X11 bitmaps, and — for some of us — also the absence of the (once default) weave background image.

The Suggestion

The only way to allow everyone to fulfill their work needs is to have freedom of choice. Also, a full interoperability is required to avoid fragmentation of the application world. The interoperability is not possible without well documented interfaces (and protocols and standards) and multiple independent competing FOSS implementations. (Developing closed source implementations in addition to that is fine, but beware of bastardizations).

What can you do to improve the situation if you are "mere" enduser? Choose open, FOSS, and well interoperable solutions that allow full user control and configuration, rather than the simplest, easiest to install, but inflexible ones, whenever possible. Also, let your choices be heard by the distro developers, participating in usage statistics (again, whenever possible, as sometimes this is unfortunately not an option). Voice your concerns when an unsuitable solution is forced upon you, decline from participation if using this solution is really troubling. In case you encounter a device which would cause an unfriendly solution, OS or GUI lock-in, consider choosing another device. If this is not possible, as said before, voice your concerns and wishes, write a review, see if there is some project to provide better solution for that hardware; if yes, perhaps you can sponsor them. ========= WE ARE HERE ==========

Last, but not least, you can educate your friends, coworkers, relatives, or anyone with basic computer use cases and skills, who is willing to listen to you. (When situation is conductive. Do not try to evangelize those who do not want to be.) Explain them what concerns you, how the unsuitable GUI interferes with your workstream and hinders your efforts. Try to demonstrate that flexibility is important to anyone, and anyone can benefit from optimizing their workflow. Maybe just a little bit, from one or two changes to the "default" styles, but everyone’s workflow and everyone’s optimizations are different. One size does not fit all, and honestly, for most people it is better to tailor their experience according to their needs, than to force everyone to use the same approach, rules and properties, up to the same keystrokes. You can also mention that there is small, but non-negligible and highly productive group of people, for whom the single option with limited configurability means that they are literally stopped in their efforts, and in many cases are abandoning projects, companies and communities. You can also point them to this document if you want to keep your explanation short.

In Place of Conclusion

The world of computing is developing in a strange direction which brings a lot of the bad along with the good. The changes in GUI concepts, principles and designs are among the worse ones, especially when taking into account their ubiquity. GUI approaches do matter, one has to make a lot of practice to get proficient with a new one, and there is a lot if inertia in the human mind when it comes to changes in GUI concepts. To force anyone to do everything The One Way someone conceived to build a monument for himself is unambiguously wrong; the flexible approach is better, the thriving competition ensuring the freedom of choice being the right goal we should strive for.


(c) 2022 Martin Cernohorsky, CC BY-ND

Back to the root node

Last revision: 2022-12-04