Why is Gnome configuration so difficult?

First of all, kudos to all the developers and the gnome community in general. Gnome is amazing!

I used a traditional tiling manager in the past. While I missed the features of a full-fledged modern desktop, I loved the way it was configured. It leaves me wondering: Why is Gnome configuration so painful?

I had troubles with Gnome configuration many times, on multiple distros. This is just an example. Is there a reason Gnome is not configured similarly to the for example i3? Having a human-readable config file, that completely describes the setting of the desktop and can be easily shared.

Not only would this make configuration nicer, but it would also make recreating bugs caused by specific configuration a breeze - just use the config from the issue.

Hello, the issue with that example is with X11, not GNOME. And also it shows why configuration files are not great and would not solve that issue. The keyboard config is set by the config file, but something else changes the value in the server at runtime and then the value is not propagated back to the config file. Any X window manager can have this issue because the X configuration files are not actually the “single source of truth” even though it seems like they would be. And in fact, the goal of Nix seems to be to never propagate runtime changes back to the Nix config at all. So I think more config files would just make this worse. I’m not sure how this could be solved fully in a distro that has this type of goal.

Edit: I read through most of this issue linked from that thread and it seems the most fitting thing to do in Nix is to use the existing dconf features including lockdown to prevent settings from being modified. You may want to read some of the links there including this one: Projects/dconf/SystemAdministrators - GNOME Wiki!, it shows a way you can use configuration files to modify the settings on any distro. Also, I’d like to note this issue with Xkb settings does not happen on Wayland, because that does only use the dconf database as the single source of truth.

Whoever says that should be sentenced to have their entire desktop running off of text files, with multiple components competing for opening, reading, and writing them.

We used to do that; it made starting the session, each service, and each application slower. It also made watching for changes in settings impossible without burning through the open file descriptors, which are a per-process resource that is easy to exhaust.

Plain text files are also terrible when it comes to complex data: parsing random text formats is a source of innumerable security issues.

If you’re used to i3, using text files is “easy”, because there’s a single process, and a single text file. GNOME is not a single process: it’s multiple services, that start on demand, and have to read a variety of configuration data, often fairly complex, and be notified of changes. I’m not even throwing things like settings lockdown or distributor overrides in the game.

The truth is: any modern desktop is a complex system, made of multiple parts, and all of them have outgrown “simple” text files more than 20 years ago.


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.