I use Gnome, and I’m not a hater, but if you’re expecting some harsh criticism for it, here it is: Extensions breaking so easily should not happen. It’s an extreme pain in the butt every 6 months. They should establish an allowed API that’s frozen, while extensions that use private api calls, don’t get posted on the gnome website/extensions app, so they’re harder to find. Simple.
It wouldn’t really be an issue if you didn’t need an extension for every single basic functionality…
Because of how stupidly opinionated Gnome is I switched to KDE a year or so ago and have been extremely happy with it. And what do you know I don’t even need any extensions, because sane stuff like tray icons are builtin.
I do use an extension for distributing windows in custom areas though, and it didn’t even break throughout the (I believe) 2 large updates there were since I started using it.
I like the opinionated nature of GNOME, I don’t have time to configure my desktop, I just need to do work and get paid.
I may understand “opinionated” differently from you, but the main issue is that when you do want to change something, you can’t. Or it’s some unsupported hack, or (best case) you flip some hidden configuration variable (that will probably break with the next release).
KDE is well configured from the get go as well, you don’t have to change anything and it will work well. But if you do decide that you don’t like some of their defaults, you can tweak many aspects of it.
They don’t actually “break”. Extensions have to report themselves what Gnome version they support. If they aren’t patched to reflect this, they will be marked as unsupported on that version of Gnome.
This makes sense from the perspective of making sure the extensions are actually tested on new versions of Gnome by the devs.
Gnome only really has two options here:
-
do what they currently do, with most extensions usually only needing a text file reporting that they support the new version. (Almost all extensions don’t have an issue with this and are updated long before stable release, btw)
-
assume everything works, possibly causing severe problems after an update if a change to the Gnome shell doesn’t play well with an extension.
People often say they should just have an extension API, but that would mean hindering the usefulness of extensions – they’d only be able to do what the API lets them, rather than having free rein over your system, which is currently what makes the extension system so powerful. They’d be almost entirely useless.
No, there is a third option: you freeze the API for the extensions. That way, nothing breaks. And if an app uses private APIs (or public APIs that are not meant for extensions’ use), then and only then you treat it as unsupported.
And yes, the constant breaking is a big, big problem. I use 6 extensions to make the desktop the way I want it to. In every release, I get at least 4 of them breaking for several weeks each time. The last time, the dock extension I used broke with the new Gnome version, but when it got disabled, the “favorite” icons on its dock did not reflect on the Gnome’s default dockbar. All that stuff, are unacceptable for a proper usage in 2024, especially for people coming from Windows that expect stability (no matter what people say, Windows IS stable). I use Linux since 1999, but it’s that kind of stuff that i can’t stand. I want stability. The days when I was hacking on Gentoo in 2003, are long gone. I’m now in my 50s and i don’t have time for that shit.
So, yeah, the third option.
I already mentioned in my comment why the “just have it as an API” point wouldn’t really work unless extensions became severely hampered in terms of what you can do with them.