There is literally no gtk3 theme that, simultaneously:
- Is not flat and generally grey or dark blue. It's as if everyone Apple fanboy who was rejected by Apple's UX department is now making GTK themes.
- Is not frickin' ginormous. I know multitasking is frowned upon now that we have tablets, but I have a bloody 27" screen, I want more than one window on it at the same time!
- Doesn't break in the next release.
At first (as in, 2011 or so) I just blamed it on gtk3 being new and all that. But we're four years from that. This disaster seems to be intentional.
That gtk3 maintainers position on backward-compatibility really puzzles me. May be I am wrong, but theming engine is a vital part of an UI toolkit - you need to represent all the fancy widgets somehow in a way appropriate to the user. Yet they keep on breaking things almost each minor, leading a lot of theme creators to quit. Might be the real underlying cause of our whines...
Nevertheless, I don't see any other way than point out to the problem again and again, when each important piece of software is going to switch to gtk3. World does not stop on gtk3, there is Qt, which can handle gtk2 theme engines pretty much seamlessly (at least, from my experience), without breaking things at each release.
Yeah. I still manage to live in a gtk2-only world for now, but mostly because I don't really need too many GUI programs (I can't remember the last time I opened something other than Thunderbird, Firefox, Emacs, and whatever pdf reader and image viewer I have lying around) but that's obviously not sustainable.
Unfortunately, GTK3 (and, for that matter, much of the modern Linux user-side development ecosystem) is increasingly hostile. Frequent, often unwarranted changes (implemented through code of dubious quality), crap documentation (when it exists). It feels increasingly like developing for (and using) OS X or Windows, just without the good parts that we all secretly covet, like Visual Studio and Interface Builder and the MSDN.
> May be I am wrong, but theming engine is a vital part of an UI toolkit
Arguably, for a big chunk of GTK+ users (me included) it's not. I care about the work on the default theme as I can't really be bothered to install custom themes. For me, the same is true for Qt or whatever other toolkit: either they give me appropriate defaults or I will probably tend to ignore them.
That said, it seems that GTK+ developers agree with you more than you seem to expect: in the past few cycles they worked a lot on the theming engine, simplifying it to the point that the whole theme is defined only by CSS.
Instead of writing clunky, complex loadable modules in C, they can just mash together some CSS and customize every part of the UI. This is a massive improvement over GTK+2.
Of course, since the CSS can poke at the deep internals of the toolkit, complete stability cannot be provided: think of it as a user-level CSS that cannot cleanly cope when the target website changes.
Well, I feel exactly the opposite. Although, I had no chance to write gtk theming engines due to lack of neccessity, I would argue that most of the time clear good ol' imperative chunk of simple and straightforward C is far better than arcane declarative CSS based on whatever underlying rules I am not fully aware of.
P.S. I has experience with both - besides writing my decent share of C code over the course of past 10-or-so years, I had an opportunity to write stylesheets in pre-HTML5 times (for money). Later was far more sane and flexible (yet a bit arcane due to multi-browser compatibility) than writing on pseudo-CSS in order to compactife modern Eclipse (4.x). No way I would believe that pseudo-CSS for constantly unstable underlying engine could be somehow better than "clunky, complex loadable modules in C".
> imperative chunk of simple and straightforward C is far better than arcane declarative CSS based
Nope, consider yourself lucky if you have never heard the horror stories about the old theming code (and even more lucky from the fact that you never had to poke at it). :)
P.S. Me too, I worked at a small studio developing web apps for a few year, then moved to optimizing HTML/JS/CSS3 apps running on a custom WebKit enviroment with animations, transitions and whatnot on a embedded (and horribly low-powered) platform and now I have the pleasure of trying to make WebKit work well on the Raspberry Pi.
As far as I can tell, CSS is several orders of magnitude better than poking at C code for those purposes.
Things have improved a lot with the CSS engine maturing. With GTK+2 themes where loadable compiled modules and where far from simple.
With GTK+3 you do everything with CSS alone.
Of course full stability cannot be provided due to the fact that the CSS can poke at the internal composition of composite widgets, not unlike how greasemonkey scripts can hardly cope with the target website changing, but things got much more stable in the last few cycles.
Bullshit. Every time a new GTK3 release comes up, the bug trackers of popular themes flare up (many of them obscure, e.g. https://github.com/shimmerproject/Numix/issues/206), various undocumented tidbits and bugs in the theming engine pop up and "innovations" like the client-side decorations are introduced.
Meantime, clunky, terrible C modules written back when GTK 2.10 was a thing work just fine on 2.99.
That is not simplification. Simplification is when things get easier, not when they get harder.
The vast majority of third parties GTK+2 themes were using the pixmap engine (or murrine in some cases), which was basically what the current CSS engine is, just more arcane and infinitely less flexible.
I reiterate: full stability for theme developers CANNOT be provided, unless you're willing to give away much of the power of the current theming system, basically going back to the annoyingly limited pixmap engine. This (understandably) is not a tradeoff the GTK+ developers are willing to make, and I guess neither third party developers.
> Meantime, clunky, terrible C modules written back when GTK 2.10 was a thing work just fine on 2.99.
I don't know, I remember Murrine being often broken after new GTK+ releases, despite it being under active development.
That issue has been opened on 10th April, I guess your issue is more than your theme needs more help for its maintenance rather than GTK+'s fault. Again: there's no provision of stability for themes. Either you accept to keep up with upstream or you'd better stick to the default theme. Just like using a greasemonkey script when a website changes.
The changes in GTK+ have become progressively less dramatic: this means that fixes for themes are now smaller/simpler, not that they don't need active upstream tracking.
I'm currently using Greybird[0] under XFCE, but I'll keep my mouth shut since it's both blue and grey with black desktop panels ;) The widgets sizing and layout is decent though
Honestly I haven't seen anything GTK+ based that looks as good as KDE (4.x).
> Honestly I haven't seen anything GTK+ based that looks as good as KDE (4.x).
Here's a phrase I never thought I'd heard :-).
I don't really like Greybird, but Bluebird is nice. Now if only there were a (non-hacky) way to consistently disable the frickin' client-side decorations, I could almost use Gnome 3.
I've spent considerable time looking for GTK3 themes that meet your requirements.
My current choice is openSuse-Pistachio which is green, reasonably compact, and did not break for two consecutive Ubuntu releases. zonColor icons work beautifully, too, with adjustable colors.
There are a few more reasonable choices (though not oodles) on gnome-look.org
I also get GTK2 for free. That's not the problem. I'd happily make my own GTK3 theme if GTK3 weren't so incredibly hostile to theme development. It's literally less reliable than Windows Blinds, which is a frickin' hack on top of a closed OS.
It's not a problem of asshole theme creators, it's a software quality problem, and everyone in the Gnome Project's bubble is dancing around it and pretending it's good for the users.
Often that is acceptable advice, but in this case, their issue that:
> - Doesn't break in the next release.
is something that can't be worked around simply by creating your own theme. That seems to be caused by poor compatibility checking (or reckless disregard, as others are claiming), which could bite you even if you create your own theme.
Obviously, you could extend your suggestion to "fork gtk3", but that's likely a significant undertaking and not reasonable for everyone. I think it is reasonable to expect developers to maintain compatibility between minor version releases, assuming they're using semantic versioning, otherwise it's poor communication on the part of the developers.
Then submits bugs and contribute to fix those bugs, it is the way open source works, if you don't like it, go use something else, nobody is forcing you to use it.
What does being open source have to do with having crap policies?
There are plenty of open source projects that don't have those problems, and it's not like the core team is interested in making theming anything else but a clunky hack so that everyone uses Adwaita...
Yeah, but the backend seems to be buggy, the documentation is not up-to-date and basically half the things that work in 3.x break mysteriously in 3.(x + 1).
Meanwhile I can use a gtk2 theme from 2006 without any problems (and it doesn't make my desktop look like a kid's HD drawing). As long as I can do that, I have very little motivation to put up with gtk3's crap.
There is literally no gtk3 theme that, simultaneously:
- Is not flat and generally grey or dark blue. It's as if everyone Apple fanboy who was rejected by Apple's UX department is now making GTK themes.
- Is not frickin' ginormous. I know multitasking is frowned upon now that we have tablets, but I have a bloody 27" screen, I want more than one window on it at the same time!
- Doesn't break in the next release.
At first (as in, 2011 or so) I just blamed it on gtk3 being new and all that. But we're four years from that. This disaster seems to be intentional.