3 ms·
> It sounds like GTK doesn't support themes > I'd petition for GTK to support safe theming, and maybe build up what themes can do in a controlled manner over t
by chriswarbo 3y ago
> It sounds like GTK doesn't support themes
> I'd petition for GTK to support safe theming, and maybe build up what themes can do in a controlled manner over time
GTK already supported themes! In particular, GTK2 has loads of themes (e.g. see the GTK2 category on gnome-look.org https://www.gnome-look.org/browse?cat=136&ord=rating https://www.gnome-look.org/browse?cat=136&ord=rating ). Not only did artists create a wide variety of themes, programmers also wrote many "theme engines" to extend the theming capabilities of GTK2, e.g. see all of the "gtk2-engines-foo" packages in Debian: https://packages.debian.org/search?lang=en&searchon=names&keywords=gtk2-engines https://packages.debian.org/search?lang=en&searchon=names&ke...
GTK3 purposefully broke all that, in order to clean up the API, deprecate/replace various functionality, etc.. Fair enough, that's perfectly understandable; and necessary at some point.
> ... and some people are using custom CSS overrides to emulate it.
> tell everyone to stop with the CSS.
To mitigate the damage of losing all existing themes, the GTK3 developers switched to using CSS, so that:
- Theming would be much easier than for GTK2, reducing the effort to replace all those existing themes, and for making entirely new ones
- By replacing their old bespoke formats with CSS, hordes of Web devs would be able to join in with theming (this is also why the Gnome desktop embraced Javascript around the same time)
In other words, those "custom CSS overrides" are not only the officially sanctioned way to do theming; but the project implemented a major breaking-change in order to add CSS support, precisely for this reason!
This situation is entirely unlike, say, a Web site breaking due to someone's user-style.css. Web sites typically don't want anyone overriding their CSS, and they only use CSS at all because it's the only thing browsers provide. In contrast, GTK3 chose to implement CSS (previous versions worked fine without it), and they chose it so it could be overridden.
---
Unfortunately, this strategy did not work, at all. There was some initial effort at creating and porting themes; but each minor release of GTK3 broke them, requiring constant maintenance from their creators, until most just gave up. For example, see the GTK3/4 category on gnome-look.org ( https://www.gnome-look.org/browse?cat=135&ord=rating https://www.gnome-look.org/browse?cat=135&ord=rating ) and notice:
- How many of the changelogs show breakages for every GTK update (usually the even-numbered ones like 3.16, 3.18, 3.20, etc. which are the stable releases)
- All of the comments (~one thread a year) reporting breakages, asking for updates for new GTK versions, linking to forks maintained by third-parties, reports that those forks aren't maintained anymore either, etc.
Also, compare the Debian link above to this search for GTK3, which only shows one transitional package and one from their "oldoldstable" release: https://packages.debian.org/search?suite=default§ion=all&arch=any&lang=en&searchon=names&keywords=gtk3-engines https://packages.debian.org/search?suite=default§ion=all...
Over this time, Gnome's official position has changed to a combination of:
- We'll be adding better theme support soon, and it will be much better than before!
- The very idea of theming is an insult to our perfect decisions and aesthetics
NOTE: Gnome/GTK developers have pissed off so many people with their 2->3 transition that Gnome 2 got forked into the Mate desktop; the Cinnamon desktop forked Gnome 3 in order to clone Gnome 2; and many projects have been abandoning GTK in favour of alternatives like Qt, e.g. Audacious did so recently.