GNOME’s self-serving nature (and why they’re right).
Anyone who’s been in the Linux desktop sphere for longer than a few months has probably been made aware in some way or another, that GNOME does what GNOME does, and no one can change that. Linux’s most popular and widespread desktop environment is responsible for some of the most controversial changes and hot-takes about how the desktop should work and how users and developers interact with the desktop and the apps residing within it. It’s clear they’ve been successful, seeing how they’re the biggest player in this space, yet many are quick to call them out as careless or self-serving. Do users just lack vision, or is GNOME blind to theirs?
Not too long ago, a disagreement in design philosophies that existed for years reared its head once again as the peanut gallery piped up about how out-of-touch GNOME had become. Unsurprisingly, in a group of users who are convinced that the sole reason Linux exists is to simply have wacky colours and a dancing penguin on their desktop, the worst thing a project could do is change how theming works in any way. The obligation GNOME is expected to uphold, is to explicitly support the ability to force the entire system, including third-party applications they didn’t even design, to adopt a stylesheet they didn’t create or test. Of course, if they do this and something breaks, someone has to take the blame.
Application developers on Linux have the shortest end of the stick here. Linux, for all of its incredible tooling and wonderful options, is an absolute nightmare to develop apps for. It’s not the technicalities that hurt so much, no. It’s the unrealistic and unrelenting expectations from a million users on 200 different distributions using 10 different desktop environments. That their app should work exactly as intended in an environment no one is testing for, and that their app sucks if it doesn’t, and so do they! When a theme changes colours and icons in an app that are supposed to mean something, then the app loses its ability to convey intent. It distorts the way an application communicates with the user. And when themes make text unreadable, or make buttons invisible, or make things look “broken”, many users might even just stop using your app altogether. Some will go out of their way to complain about it, maybe in passing, but enough to discourage other users from trying it. Some will complain directly, and a small subset of those users will be nice enough to file a report with information that might help get it fixed. Either way, it’s not a fun time.
GNOME is one of the few projects I’ve seen that is bold enough to fundamentally change how and where stylesheets get applied, and working to ensure that applications don’t automatically get vandalized by the system stylesheet. This, of course, is frustrating for some projects who use forced stylesheets to impose their own identity on applications, even those they did not make or explicitly test against, such as non-default applications that get installed from their repositories. Many people jumped at the first opportunity they could to bash GNOME for being anti-user, and “taking away users’ freedom”, which sounds perfectly sane and reasonable. Thankfully there were some people with level heads in the crowd, willing to understand reason for each side of this comically childish war.
There is the point some would make, that GNOME has a responsibility to adopt the methods its children try to implement or request. That GNOME is bound to “what people want”, even if “what people want” can’t be quantified anyway. GNOME should surrender their own visions and direction to just follow everyone else’s lead. Maybe the case can be made that because GNOME does not ship an operating system of their own (at least not in any significant manner, GNOME OS is purely a testbed), that the projects that do ship GNOME have a better understanding of what users want than GNOME themselves. After all, they are the barrier to entry here.
I reject this, however. I reject the notion that using something automatically gives you control over the source of it. Upsetting as it may be to some, just because you have the ability to suggest something or change something yourself does not mean that GNOME has the obligation to adopt it and abandon their own goals. It’s pretty obvious that GNOME is focused on more than just pretty flair and trying to be a clone of every other desktop. They should be able to implement the necessary changes to achieve the vision they see for their project. Becoming the platform that it’s meant to become.
This doesn’t mean projects have to use GNOME and accept its differences in technical implementations. I have no doubt that many users will stop using the desktop in the midst of the turmoil, while some projects decide to migrate from GNOME’s tools as well. This gives projects the chance to innovate with tools that suit them as best as possible. At the same time, I see many users embracing the moves forward as well, and perhaps new projects spawning that adopt and accelerate GNOME’s changes.
All this to say, you have a voice, but that doesn’t grant you control. Talk is cheap. Every project should work to do what they believe is the best for what their goals are. Take it or leave it. Walk the walk.