GNOME 42 — The Nonsense Continues

fulalas
12 min readApr 9, 2022

--

It seems the tech industry has been trying to make us believe that we need constant novelty otherwise we will be left behind. Although we can question this logic, we can all agree it has dominated the market. The majority of popular applications and services are constantly being updated even if these changes are irrelevant or, in many cases, making the products worse. GNOME 42 is just another example of that.

Instead of fixing the long list of issues found in previous GNOME versions, the companies behind GNOME decided to add more, creating inconsistencies, including dubious libraries, useless new applications, removing features and even ignoring well-established UI conventions.

Introducing libadwaita

GTK 4 and libadwaita provide next generation capabilities for GNOME applications, and many GNOME apps have started to use these components for GNOME 42. As a result, these apps have better performance, a new modern UI style, and new user interface elements. [1]

Until GNOME 41, if the user wanted to change the theme they would not find a way unless using Tweaks, this application that GNOME would love to get rid of and some distros do not even ship with, like Fedora and Ubuntu. But at least with a bit of digging the user could find a straightforward application to change themes, which were made using CSS, meaning any designer would be able to create/modify them.

GNOME 42, on the other hand, decided to implement freedesktop color scheme standard [2] to deal with dark and light modes, and it is all embedded in this in-house new library called libadwaita [3]. GNOME could also have embedded in libadwaita both dark and light modes for legacy applications, but they decided not to. Because of that, users now have two places to set dark/light modes: one in Settings (driven by libadwaita) and the other in Tweaks (driven by libhandy). As expected, their styles do not match.

But what about real theming? At this point libadwaita only allows users to change between light and dark modes. So unless you know C programming language and want to play this cat and mouse game with each new release of libadwaita, theming in GNOME is officially over.

When being naive leads to more entropy (xkcd)

The old libhandy had some flaws, no doubt, but at least it was elegant — and that was probably the best thing about GNOME until now. To justify the new libadwaita some UI elements look different now, but not in a good way. Bear in mind, though, that viewing the screens below in the real system makes more sense because there will not be any bright color around:

Libadwaita components are flatter, contrast is exaggerated and there are no color gradients

Now the old style:

Libhandy components had depth thanks to gradients and sober colors

Both libhandy and libadwaita are designed to also support mobile devices, which means your PC carries code for other platforms and vice-versa [4]. This coexistence nonsense is not new and it is not limited to GNOME though. In the case of GNOME, most likely some companies, like Pine64 and Purism, are pushing this disaster for profit reasons [5].

Screenshot for mobile arrives on desktop

Another example of this crap is the new version of the screenshot feature. It looks mobile, it feels mobile and it literally sounds mobile.

Believe it or not, this screenshot was taken from a desktop system

This new version keeps an even larger margin to accomodate shadow effects. Just take a look at most of the single window screenshots (not the one above) in this article and notice how big the gap is between them and their captions. It is not even consistent! One may wonder how useful is having screenshots with any margin in the first place.

Also, if your distro does not ship with GNOME but you want to try it and use the new video recording feature (hidden in previous versions [6]), chances are it will not work. Good luck trying to figure out why since there is zero feedback/log.

Terminal is left behind

After more than 20 years working on Terminal, GNOME decided to introduce a new default terminal application that no one asked for, called Console. But there is nothing so bad that it could not be worse, right? GNOME 42 final release ships with Console in beta version and it still uses GTK 3 and no lidadwaita, meaning more visual inconsistencies.

Is it worth it? Only from GNOME’s perspective which seems to believe that the less features the better. Forget all the options and customization found in Terminal. Console is provided as-is: apart from zoom and dark/light modes, there is absolutely nothing else to change. The search does not even inform the number of occurrences found. Memory consumption has increased a bit and rendering performance is exactly the same, lagging behind all major desktop environment’s terminals, with the exception of KDE’s one.

Yep, that’s all you deserve

The new feature GNOME seems proud of is Console's header bar ability to change to red when the user calls sudo. However if the user runs Console itself as sudo the header bar color does not change. And for no good reason, Console seems to be the only base application that has transparency, but do not try to change this because it is impossible.

Want to keep using the old Terminal? Technically you can, as long as your distro keeps building it but who knows how long they will do that for. Also, because GNOME is not interested in Terminal anymore, it did not bother to make it respect dark/light modes changed in Settings, potentially adding even more inconsistency.

Text Editor is replaced by… Text Editor

This GTK 4 text editor has a slick UI and automatically saves your work, to prevent you from losing it. [7]

Similar to what happened to Terminal, GNOME decided to abandon Text Editor (aka as gedit), replacing it with another application with the same name. No meaningful new feature has been added. Quite the opposite: plugins are now completely removed as well as Sort, Save All and even the status bar, to name just a few.

Although it is built using GTK 4 and, according to GNOME, it should be faster, in practice the amount of time to start the new Text Editor is 2 to 3 times longer when compared to the old version. Memory consumption with no document open has increased from 18 MB to 43 MB, and after opening a 500 KB HTML it has increased from 50 MB to 83 MB — for comparison, Geany editor for GTK 3 takes 22 MB after opening the same file. Rendering performance improved a bit, although it is far from being good and when source code files are bigger than 100 KB the syntax highlight is completely disabled.

Because it is one of the only applications ported to libadwaita, having keyboard shortcuts under the hamburger menu just adds more inconsistency to GNOME's visual. Also, some labels that require further input to complete their actions have no ellipsis (‘…’), violating one of the most basic and well-established UI concepts that GNOME endorses [8] — an issue that is not even limited to this GNOME application. And by changing the color scheme from inside the application not just the text scope color changes, but the whole UI:

Welcome to carnival!

And the list continues:

  • The default color scheme and most of the other ones available do not differentiate line numbers from the actual text content, leading to confusion
  • The new context menu is huge for no good reason — it will not be a surprise if, in the future, GNOME announces an improved small context menu
  • It is gone the asterisk to inform when the document has been changed and not been saved. Now we have a dot because, yes, GNOME is arrogant enough to ignore conventions and create its own
  • When trying to close a new document, a non-centralized modal dialog will appear asking the user to Save, not to Save As, which means the user will not be able to choose the file name or destination folder
  • In this same modal dialog, if the user unticks all the checkboxes, the Save button will still be available, although it will not do anything when clicked
How much bullshit per pixel can you spot?

By the way, the ‘new’ autosave feature that GNOME seems proud of was already present in the old Text Editor.

Files — more of the same with inconsistency seasoning

As a consequence of this crazy 6-month release cycle (you know, to stay relevant in the market), GNOME 42 was released with most of the base applications not ported to GTK 4 and libadwaita, including Files, one of the most used GNOME applications.

Apart from the less elegant path bar, a redundant button next to it and a bigger rename popover, the new Files offers the same features and even more visual inconsistencies: the context menu looks different when compared to the one in the new Text Editor, and they both look different to the desktop one.

We shouldn’t complain after all the new folder icon set is excitingly blue

Basically all issues and annoyances found in previous Files version are untouched. Here are a few examples:

  • Overall performance is still bad: browsing local files feels like browsing online
  • Annoyingly, type-search and file search continue to be the same thing
  • The path bar is still inaccessible without using the shortcut (ctrl+l)
  • No indication if it is running as root/admin
  • Still coupled to Tracker (the indexing service)
  • File content search depends on indexing and only works with text file extensions
  • Other Locations continues to haunt users

Settings is heavier and uglier

When changes are made basically for the sake of changing

From the usability perspective, the main difference in the new Settings is that the Backgrounds section has been renamed Appearance to also accommodate dark/light modes, although the user is still unable to set the background to a solid color or change the wallpaper view mode. It also provides these dual wallpapers that will automatically adapt when the user switches between dark and light modes:

Some eye candy to hide the limitations

For the migration to GTK 4 and libadwaita to happen in Settings, developers had to heavily modify around 330 source code files, including dependencies of dependencies in this chaotic and fragile house of cards [9]. A few examples of the consequences of this change:

  • Surprisingly, the number of dependencies has dropped from 270 to 230 — for reference, LXQt 1.1.0 control panel has 50 dependencies and Xfce 4.16 one has 80
  • The memory consumption has increased from 17 MB to 62 MB
  • Just like what happened to the new Text Editor, the amount of time to start Settings has increased by 2 to 3 times when compared to the previous version
  • Search still fails to find many keywords that are there (scale, primary, graphics, gnome)
  • Some buttons have a frame (close/minimize, output test, alert sounds), while others do not (search, mute/unmute, hamburger button)
  • Wifi, Bluetooth and Privacy sections have a main switch in the header bar, while the Extensions application moved its main switch from the header bar to the application body
  • Sometimes Settings loses its rounded borders, showing these square margin lines instead:
The only way to fix this visual glitch is to close and open Settings again

What about this popover menu with buttons instead of labels in the Wifi section:

If GNOME could just follow its own principles… [10]

Panel — mysterious small changes

It is unclear why Panel has removed the arrow indicator from the popover menus, a feature introduced in GNOME 3 and still present in all other GNOME applications. It seems not just unjustified but also inconsistent.

Popover arrow is gone, but just in Panel

Also odd is the fact that sometimes Panel highlights its items and keeps them this way until you click one by one:

Panel has its own desires and idiosyncrasies

Chaos all over the place

The list of annoyances in this release goes on and on:

  • Image Viewer does not respect dark/light mode changed in Settings
  • Tweaks 42 is shipped in beta stage and with no rounded corners at the bottom
  • Archive Manager has no rounded corners at the bottom
  • If you for some reason miss the Windows is ready popup crap after opening a folder from inside the browser and you try to open it again, nothing will happen
  • Rounded corners get squared when windows are maximized because… well, monitors have square corners. So why bother to design them round in the first place?
  • Applications List (a clone of Apple’s Launch Pad) is still a mess, including handicap search, random sorting, gaps even when there are items on the next page, outrageous grouping usability

GNOME still lacks an application to download and install third-party extensions. Instead, what GNOME provides is this ridiculous browser extension that depends on 9 specific libraries, including chrome-gnome-shell which will not work if it fails to guess where browsers are installed or if they are packed as AppImage/Flatpak/Snap. Not only that: it keeps running in the background regardless of whether any browser is open — and when open, more instances of chrome-gnome-shell start to run.

No extensions for you if GNOME fails to guess your browser path

Every major GNOME release breaks basically all third-party extensions, and version 42 is no exception. Despite decades of development, GNOME seems unable to implement an API that stays reliable at least between two releases. Better believe they do all this on purpose, trying to discourage anyone from changing their masterpiece.

People who develop extensions for GNOME have a special place in heaven

GNOME is still coupled to dubious libraries, with no way to avoid them unless heavily patching the code:

  • Date/time widget in the Panel depends on libGWeather and Evolution (GNOME email/calendar application)
  • Settings depends on a whole browser engine (WebKit2GTK) just because of Online Accounts feature
  • Display off (after inactivity) depends on GDM
  • GDM depends on systemd
  • And now we also have libadwaita
GNOME seems to have some unsolved Freudian issues with colors and gradients

Wayland is GNOME’s preferred display server although it has limitations: restarting gnome-shell is unavailable, Nvidia drivers can be problematic, screen sharing might not work, copy and paste has restrictions, and many more [11]. On the other hand, using X11 results in no support for fractional scaling, no touchpad gestures, low rendering performance when combined with Mesa drivers. It seems there is no ideal scenario for GNOME.

But above all these limitations, visual issues, pointless replacements and lack of interesting new features, the biggest problem in GNOME is the overall low performance. This is not limited to specific applications or to the hardware. It is just frustrating to use such an unresponsive and clunky system and notice that in release after release GNOME demonstrates no interest in properly fixing this. Worse than that: as seen in this article, some recent changes decreased performance even more.

Conclusion

In GNOME 42 brightness and volume OSDs have become smaller at the same time Files rename popover has become bigger, while the desktop has dropped top rounded corners at the same time as most applications windows now have all corners rounded [12]. No matter what arbitrary decisions GNOME makes, most users are going to be excited about it because they are led to believe that changes in technology mean improvement. Unfortunately this is quite often not the case.

GNOME 42 should not have been released to the public in its current state because it is clearly incomplete and, in a nutshell, meaningless. Instead of focusing on dubious changes, they should have fixed the most critical issues already present in the previous versions, especially UX limitations and performance.

But this will not happen any time soon. In 6 months GNOME 43 will be released with a new set of irrelevant changes, including a transparency effect in the header bar and the removal of the current Image Viewer to give way to a new one with few features and a more mobile-friendly approach [13]. It is simply unbelievable.

Discussion:
Hacker News
Linux Questions

--

--