> libadwaita is in a "functional" release state, but still lacks support for custom stylesheets,
Libadwaita is an implementation of GNOME's design, analogous to libgranite in elementary OS. This includes the visual design. GNOME only has one style, Adwaita (which means “the only one”!).
If you don't want to use GNOME's design, you don't want to use libadwaita.
> basic desktop integration on non-GNOME desktops
Libadwaita is the library you use when you're targetting GNOME.
If you want to target something other than GNOME, you don't want to use libadwaita.
Libadwaita isn't trying to be a general-purpose library for making apps that feel integrated on any platform. I don't think it's reasonable to criticise it for not being something it's not trying to be. It's like objecting that a dog doesn't meow :)
> and has it's own litany of bugs that accompany it.
> Libadwaita is the library you use when you're targetting GNOME.
> If you want to target something other than GNOME, you don't want to use libadwaita.
Does GTK4 provide any viable model of development if one doesn't want to target GNOME or elementary? I, for one, haven't seen a non-trivial GTK4 app that doesn't use libadwaita or libgranite and the more I discuss this online, the more I suspect that this is intended but unspoken behavior.
Even LibreOffice has now decided to use libadwaita. Does that mean LibreOffice's GTK version is only intended for GNOME? If yes, GTK4 is basically a toolkit for GNOME masquerading as a general purpose toolkit.
> Does GTK4 provide any viable model of development if one doesn't want to target GNOME or elementary?
It's possible to make apps using GTK3 without libhandy, so I don't see why you couldn't make apps using GTK4 without libadwaita.
Technically, libadwaita is just a bunch of widgets. Apparently it's a very useful bunch of widgets.
> Even LibreOffice has now decided to use libadwaita. Does that mean LibreOffice's GTK version is only intended for GNOME?
I guess so. Either that, or they're intending to use libadwaita in an “off-label” way.
> If yes, GTK4 is basically a toolkit for GNOME masquerading as a general purpose toolkit.
The whole reason libadwaita's widgets are not just part of GTK is so that GTK doesn't have to cater to GNOME, and can be a more general-purpose toolkit. Libadwaita 1.0 was just released last month, so presumably it will take some time for that to come to fruition.
As someone with firsthand experience in this field: it's not worth your time. Getting GTK4 to work in other desktops is a shitshow in the first place (it has horrible rendering issues on x11/Plasma configs), but all of the good stuff like gtk::Builder and connect-closures have been removed, making imperative development an enormous pain in the ass. If you still manage to make an app despite that mess, you'll be left with horrible font rendering issues that can only be fixed with a very specific Flatpak configuration (hope you didn't want to run your own app natively!) and by the time you've got it all figured out you'll probably be looking into Qt.
Please, just use GTK2 or GTK3 if you're planning on making non-GNOME apps. GTK4 is simply not finished yet.
> We've made it through decades without breaking theming, what changed?
According to the GNOME team, application developers were getting bug reports filed against their application about broken interface elements, and GNOME was having bug reports filed for the same. The devs stated it was the fault of the theme being used, and as such it would eliminate a lot of headaches for both if themes were forbidden.
"Independent developers" set out to explain this in more detail. [1] While it is targeted at vendors who created their own themes for branding, it echos the overall sentiment toward theming from GNOME itself.
I'm not talking about a library, I'm more concerned with DEs implementing the library.
Things like swipe with three fingers to switch desktops, swipe up with three fingers to show open windows etc. Why is all that stuff tied to a UI theme?
Swipe to switch desktops is implemented in GNOME Shell and Mutter. GNOME Shell's default CSS style is also called Adwaita, but it in no way affects the availability of gestures.
If Libadwaita optionally extended GTK (based on desktop preferences) so that when Gnome apps are used on other desktops they can fall back to GTK or other inherited UI, that would be great, but at the moment, Libadwaita is a hard dependency (when used), which makes Gnome applications more different (than not using Libadwaita) on other desktops.
Libadwaita is an implementation of GNOME's design, analogous to libgranite in elementary OS. This includes the visual design. GNOME only has one style, Adwaita (which means “the only one”!).
If you don't want to use GNOME's design, you don't want to use libadwaita.
> basic desktop integration on non-GNOME desktops
Libadwaita is the library you use when you're targetting GNOME.
If you want to target something other than GNOME, you don't want to use libadwaita.
Libadwaita isn't trying to be a general-purpose library for making apps that feel integrated on any platform. I don't think it's reasonable to criticise it for not being something it's not trying to be. It's like objecting that a dog doesn't meow :)
> and has it's own litany of bugs that accompany it.
Now, that is always a fair criticism :)