This post is about the way Linux deals with themes and why so many are getting it so wrong, despite them looking as if they are doing it right. Lets see!
Look how simple it looks like on Pop OS:
Two options, light and dark. That’s all. No other options. There are two huge caveats with this.
You only have two options and even if you manage to install another theme via the terminal or downloading it from some websites (since you can rarely, if ever find themes in Pop OS otherwise), you won’t be allowed to select the new theme from anywhere. You’ll have to install Gnome Tweaks for that simple task.
Changing the theme there, will only change it for like 50% of apps. That’s all. Since it only changes it for GTK apps and not QT apps.
Here’s how two browsers (Gnome Web on the left - GTK) and Falkon (on the right - QT) look with the dark (and default) Pop OS theme:
So Pop OS may look nice “on paper”, but when you use it you realize how limited it is.
GTK and QT, these are the toolkits that most of the apps on Linux are written in. I won’t go into any details, but all you have to know is that the vast majority of Linux apps are either GTK or QT. I’d wildly assume, from my experience, that’s around 95% of all apps. And therefore you end up with 2 separated themes for each.
Ubuntu Budgie for example, lets you select from more themes:
And yet we see the same issue, it only applies for GTK apps.
These are based on Gnome, and Gnome is like the clothes you put on a body, or the shell of a car and not the engine. The engines are Debian, Arch (as two of the most well known examples). The shells of these cars are Gnome, XFCE, KDE Plasma, Budgie, Deepin, Cinnamon, and so forth. More of them as you can see. There are forks of these, like Bidgie is a customized Gnome. So all of the Gnome shells are basically not geared towards tweaking the desktop look much. You need 3rd party apps just to change the theme from their default ones. And that only does it for GTK apps. You need yet another one to change it for QT apps.
In all, the car shells, Desktop Environments as they are called, are responsible for the visual look of your system. And they are mostly either built around GTK or QT. So their default Appearance tool will only deal with either of those toolkits. Pop OS uses Gnome, and thus their Appearance setting only changes the themes for GTK. TROMjaro uses XFCE, and that is also based on GTK…and you guessed it, the Appearance deals only with GTK elements. Or is it? Read!
Zorin OS Light uses the same XFCE Desktop Environment (DE) as we use. But they created their own Appearance manager. And you end up with 2 places that do, in essence, the same thing. Only that the Zorin “place” makes it a bit nicer. Like select if you wanna’it be dark/light and what accent color.
Then to the Other tab you’ll find new selections…different from the ones in the XFCE’s Appearance.
And yet this, again, only changes the theme for some half of apps. Same story:
Gnome Web on the left (GTK) vs Falkon on the right (QT)
It looks again like a nice and simple way of changing the theme. And indeed choosing a Dark theme, as an example, will also tweak Falkon’s QT style somewhat:
And Gnome Web:
But the Falkon has the Orange accent color I selected…and Gnome Web has the blue color regardless of what I change…very strange. Very inconsistent. Deepin built its own DE, so I do not know what’s happening there. Not to mention I would not know how to switch to a new theme other than the ones they provide…
To select a theme is easy, yet you can select multiple aspects of a theme, making it a bit confusing.
It is true, you could stick to Global Themes and that’s all. But does it work for both GTK and QT? No.
It does change the theme properly for Falkon since it is based on QT and KDE Plasma is based on QT, but for something like Gnome Web all it does is to force a dark theme for it if the Global Theme is set to dark. But it is the default Gnome Web dark theme basically. On the Falkon side you can see the KDE Plasma theme is different, it has a purple accent color. If some GTK apps do not support a dark/light mode then KDE Plasma can’t even keep the same dark/light mode consistency. So yah, KDE Plasma fails too.
But installing and applying new themes on KDE Plasma is really easy and great:
However that catalogue can be quite limited, and whatever theme you choose will work with some half of the apps. So, still not that great…
Here’s the Cinnamon DE in action. Change theme:
Ok that’s confusing…but if you somehow figure that changing the “controls” layout changes the windows theme, then you are good. I think they do it in a very confusing manner.
But hold on, if you change to any theme, say dark with a red accent, here’s how Gnome Web vs Falkon look like:
How about a light theme and a yellow accent?
And that’s what I call perfection! No fuss, no headaches except their very confusing “change controls” option to change the theme…
They did it! Changing the theme from there, it changes it for some 95% of all apps. What more do you want? And to install new themes is as easy as KDE Plasma:
The big downsides are that the catalogue is quite limited (a few tens of themes), and at times you may install a theme and do not know where to find it because it is nowhere to be found…since some themes may only be for the top bar, some for the menus, some for all…it is kinda confusing.
And if you want a theme that’s not in their library then you have to manually install it, then you’ll find it in the same Themes place but it very likely won’t work for both GTK and QT. So…yah…still not perfect, but the best out of all.
On Windows or MacOS changing the themes is easy and super inconsistent. Apps will still look the way they want to. But on Linux we got spoiled and we want “perfection”. If I select a dark theme with a purple accent then I want ALL of my apps to look like that. Else what’s the point of changing the theme in the first place?! So on Linux we have to have two themes, one for GTK and one for QT, in order to create consistency for like 95% of all apps.
So, if we want consistency on Linux, we have to have 2 themes. One for GTK, one for QT. And the best would be to sync them and when we change the theme, to change it once, and that’s all. But since many developers make themes for one or the other, it is hard to have such a perfect world.
Not to mention flatpaks and snaps…these packages do not even respect the system theme…We do not support snaps on TROMjaro by default, only flatpaks and the reason is to expand the app library. I only recommend flatpaks when you do not find an app in the repos or AUR.
This is Gnome Web vs Falkon “out of the box”:
If I now open Appearance I see this:
You guessed how you can change the theme? In Style of course. Click any and it changes the theme. For both GTK and QT apps! And it only needs ONE single theme. A GTK one. The QT theme adapts from the GTK one. Here it is in action:
How easy! Click any theme and that’s it!
There is still a small inconsistency…the top window bar may not change for QT apps since XFCE also wants to style the top bar independently. More likely the top window bar does not change for Client Side Decoration (CSD) windows… So you have to go to Window Manager and change it from there…
Still less steps than for Cinnamon. And I opened an issue on XFCE’s gitlab about why this option doesn’t make much sense.
How to add new themes in TROMjaro? Two ways:
Via the Add/Remove Software, like you do with any apps. Search for a theme there and most likely you’ll find it in the AUR category. From my experience AUR far exceeds the themes library of KDE Plasma or Cinnamon. So if there is a theme, and it is popular enough, you’ll find it in Add/Remove software. The nice part is that is so easy to install it, remove it, and keep it updated. Same as with any TROMjaro apps. A small tip, try looking for the name of the theme + the words “theme” (obvious) and “gtk”.
If you do not find the theme there but you find it as archived, like many are via websites like this, then download that archive, the grab it and drop it on the Apperance window. Yah! That easy! Look:
As you can see TROMjaro does the theme-changing really well. To me is the best out of all of the above examples. And the above examples encompass most, if not all, important DE’s. If a human wants to change the theme on their desktop, they should simply have an easy to understand interface and click to select the theme they want. And that’s all! Should work with most, vast majority, of apps. TROMjaro does that. No fuss.
And when it comes to installing new themes, humans should be able to do so very easily. The fact that TROMjaro has direct access to AUR means that installing themes is as easy as installing any apps. And if a theme is not in the AUR, drag-dropping it (the archive) on top of the Appearance window is so easy is outrageous .
We want to make TROMjaro the best distro out there. Any feedback can be helpful! Enjoy!