Gnome + systemd

I don’t really mind this. It’s clear that GNOME is trying to make a complete graphical environment in a way, not just something which neatly slots into the old school “desktop environment” shaped hole in a traditional UNIX system. It has a dependency on using GDM as your “display manager”, because GDM plays the role of a login/lock screen in the GNOME system. It depends on systemd because a graphical system needs to be able to spawn and monitor background processes, and systemd user sessions plays that role in the GNOME system. Same with seat management etc.
\ There are many great alternatives which do slot neatly into the “desktop environment” hole, most notably KDE and XFCE. These are great projects and using one of them is probably a much better idea than to try to extract only the desktop environment-like part of GNOME to get it to run outside of the intended GNOME system. Personally, I’m excited to see what the GNOME folks are able to do when unconstrained by old traditions like “everything should be a self-contained puzzle piece which can slot together with any arbitrary set of other puzzle pieces”.

I don’t think they’re giving up on modularity or clean architecture. They have gnome-shell doing the shell stuff, GDM doing the display manager stuff, logind dealing with user logins, systemd dealing with process management, GTK for the actual widgets, Mutter for the compositing and window management, dbus for the IPC, userdb to look up user information, etc etc etc. It’s all highly modular.

In fact, adding a hard dependency on various services and utilities increases modularity; gnome-shell no longer needs to have its own built-in process manager for example, it can use systemd user sessions for that.

What it’s lacking is interchangeability. GNOME expects to talk to systemd for process management, not any process manager. It expects to be started by GDM, not any display manager. It expects the window manager to be Mutter, not any window manager. It expects applications to be written in GTK, not any GUI toolkit.

I do think it’s going too far in some places. I really don’t like the lack of server side decorations, which makes all non-GTK applications look incredibly out of place. Nor do I like that e.g the GNOME emoji picker only works in GTK apps. I think there should be a much clearer distinction between “the GNOME graphical system” and “the GTK GUI toolkit”. But all the other dependencies on other modules make sense to me. The GTK situation limits what you can run on GNOME, unlike the other stuff.

When you don’t have resources, it makes sense to concentrate things instead of trying to expand in every 10 directions and burn out.
\ This decision makes sense to me.

••• Opinions

Reply by Email