GNOME to prevent theming, wider community not happy

If you’ve been paying attention to recent chatter in the GNOME and surrounding communities, you may have noticed there’s a lot of disgruntled developers within certain communities that rely on parts of the GNOME stack, such as Pop!_OS and Budgie. I’ve been trying to follow most of these discussions and have been itching to write about it, but with the discussions still ongoing and my own lack of knowledge on the intricacies of the interplay between distribution maintainers, desktop environment developers, application programmers, and GNOME itself, I figured I should stay away from it until someone with more knowledge stepped in.

Well, thanks to Joshua Strobl, experience lead of Solus and one of the main developers of Budgie, I now have a great in-depth story to link to. I urge you to read the whole article, but here’s Strobl’s conclusions:

1. GTK4 has not met our expectations since its release in December of 2020, nor have we been satisfied with its state as of the writing of this post.

2. Current plans by GNOME for changes to how theming works is viewed as regressive for desktop Linux, developers, and user choice.

3. We do not believe that GNOME is treating its community, from individual users to entire operating systems, in a manner that is equitable and respectful of their choice on how they want to curate their own experience.

4. Budgie 11 will not be written in GTK4.

5. For Budgie Edition: we will be working on replacing software developed by GNOME with that of alternative software developers as well as “in-house” solutions. These will not necessarily be under the GetSolus organization nor will they be associated with Budgie. Adopting Budgie going forward (at least until 11, when we have our own control center) does not and will not require using our own apps. This has even remained true even for Budgie Desktop View, we support alternatives like Desktop Folder as alternative “desktop” implementations in Budgie.

6. GNOME Edition will be demoted to a non-curated edition and moved to a lesser position on our Downloads page in a future release of Solus.

There are various problems non-GNOME GTK developers are running into, but as a user, my biggest problem is GNOME’s adoption of libadwaita. GNOME is going to ship a library, libadwaita, that when used by an application, will force it to use the default light Adwaita theme, with no option to change it to dark mode or a different theme. The end result is that if you use GNOME, you’re going to start seeing applications – both from GNOME itself as well as from third parties – that do not respect your choice of GTK theme, and instead always default to light Adwaita.

But of course, this problem extends beyond GNOME itself, as other popular GTK desktops, such as MATE, Cinnamon, and Budgie, also make use of both GTK applications, as well as components and applications from GNOME. On top of that, countless popular distributions, such as Linux Mint, Ubuntu, and Pop!_OS, all use custom themes. Their desktops will be severely broken since GNOME and GTK applications will no longer use their custom themes.

As a result, Solus and Budgie will start transitioning to using EFL instead of GTK for various components, which is a pretty big shift. As far as I know, other distributions, such as Ubuntu, Linux Mint, and Pop!_OS, have not made any plans yet as to how to handle this new reality, but I would assume they, too, will start to replace any offending applications and components, or hack GTK altogether as a workaround.

This is a shitty situation, and the GNOME developers are causing a lot of bad blood and rifts here that really could have been avoided. Theming and customisation are a core aspect of the Linux desktop, and breaking it like this is going to make a lot of non-GNOME developers as well as users very, very unhappy.

50 Comments

  1. 2021-09-16 8:23 pm
    • 2021-09-16 9:24 pm
      • 2021-09-17 3:39 am
        • 2021-09-17 10:09 am
          • 2021-09-17 1:56 pm
          • 2021-09-17 2:49 pm
    • 2021-09-17 4:24 am
  2. 2021-09-16 8:40 pm
  3. 2021-09-16 9:01 pm
    • 2021-09-17 10:05 am
      • 2021-09-17 10:38 pm
        • 2021-09-20 9:43 am
  4. 2021-09-16 10:34 pm
  5. 2021-09-16 11:24 pm
  6. 2021-09-17 12:30 am
  7. 2021-09-17 1:15 am
    • 2021-09-18 4:19 am
  8. 2021-09-17 7:06 am
  9. 2021-09-17 7:29 am
  10. 2021-09-17 7:52 am
    • 2021-09-17 5:03 pm
      • 2021-09-18 8:13 pm
  11. 2021-09-17 8:29 am
    • 2021-09-17 9:37 am
      • 2021-09-17 1:28 pm
        • 2021-09-17 2:27 pm
          • 2021-09-18 4:59 pm
          • 2021-09-19 6:01 am
    • 2021-09-17 9:50 am
      • 2021-09-17 11:00 am
        • 2021-09-20 11:50 am
    • 2021-09-17 10:25 am
      • 2021-09-17 3:32 pm
        • 2021-09-17 4:24 pm
    • 2021-09-17 10:52 am
  12. 2021-09-17 4:09 pm
  13. 2021-09-18 9:51 am
    • 2021-09-19 3:58 am
  14. 2021-09-19 7:03 am
    • 2021-09-19 7:51 pm
    • 2021-09-20 7:55 am
      • 2021-09-20 10:16 am
        • 2021-09-20 10:58 am
        • 2021-09-20 11:47 am
          • 2021-09-20 12:49 pm
          • 2021-09-21 3:45 pm
  15. 2021-09-23 10:27 am
    • 2021-09-24 1:05 pm
      • 2021-09-25 7:30 pm