Linux Mint forks GNOME’s Libadwaita to add theme support
On numerous occasions, we’ve talked about the issue facing non-GNOME GTK desktops, like Xfce, MATE, and Cinnamon: the popularity of Libadwaita. With more and more application developers opting for GNOME’s Libadwaita because of the desktop environment’s popularity, many popular GTK applications now look like GNOME applications instead of GTK applications, and they just don’t mesh well with traditional GTK desktops. Since Libadwaita is not themeable, applications that use it can’t really be made to feel at home on non-GNOME GTK desktops, unless said desktops adopt the entire GNOME design language, handing over control ovr their GUI design to outsiders in the process.
The developers of Libadwaita, as well as the people behind GNOME, have made it very clear they do not intend to make Libadwaita themeable, and they are well within their rights to make that decision. I think it’s a bad decision – themeing is a crucial accessibility feature – but it’s their project, their code, and their time, and I fully respect their decision, since it’s really not up to GNOME to worry about the other GTK desktops. So, what are the developers of Xfce, MATE, and Cinnamon supposed to do?
Well, how about taking matters into their own hands? Clement Lefebvre, the lead developer of Linux Mint and its Cinnamon desktop environment, has soft-forked Libadwaita to add theme support to the library. They’re calling it LibAdapta.
libAdapta is libAdwaita with theme support and a few extra.
It provides the same features and the same look as libAdwaita by default.
In desktop environments which provide theme selection, libAdapta apps follow the theme and use the proper window controls.
↫ LibAdapta’s GitHub page
The reason they consider libAdapta a “soft-fork” is that all it does is add theme support; they do not intended to deviate from Libadwaita in any other way, and will follow Libadwaita’s releases. It will use the current GTK3 theme, and will fallback to the default Libadwaita look and feel if the GTK3 theme in question doesn’t have a libadapta-1.0
directory. This seems like a transparent and smart way to handle it.
I doubt it will be long before libAdapta becomes a default part of a lot of user instructions online, GTK theme developers will probably add support for it pretty quickly, and perhaps even of a lot of non-GNOME GTK desktop environments will add it by default. It will make it a lot easier for, say, the developers of MATE to make use of the latest Libadwaita applications, without having to either accept a disjointed, inconsistent user experience, or adopt the GNOME design language hook, line, and sinker and lose all control over the user experience they wish to offer to their users.
I’m glad this exists now, and hope it will prove to be popular. I appreciate the pragmatic approach taken here – a relatively simple fork that doesn’t burden upstream, without long feature request threads where everybody is shouting at each other that needlessly spill over onto Fedi. This is how open source is supposed to work.