Things seem a bit better on the Qt side of things, but it suffers resolution scaling issues. Most KDE/Qt themes I’ve tried can’t draw correctly at non-integer scales.
Personally I think that CSS is actually pretty badly suited for the use case of desktop UI toolkit theming. It’s fine for one-off apps but quickly becomes a mess when it needs to be part of a larger more flexible system.
Apps like to make very custom interfaces. All of CSS is great.
Platforms like consistency, so they maintain their own complex CSS.
Users like to customize everything, so CSS is powerful but will always break as its fighting the others.
There’s not much that can be done about UI-as-branding unfortunately, but for everything else I believe that parameterization is the answer. Don’t hardcode colors, fonts, etc and instead favor framework-provided presets (like UIColor.systemBackground and UIFont.caption1 on iOS) wherever practical and that’ll for the most part make your app remain usable regardless of how the user’s themed their system, short of just using a badly made theme. This should be done anyway because it’s a huge boon to accessibility if the user can e.g. enable colorblind mode and have the reds and greens in apps adjust automatically because their devs were thoughtful enough to use Color.systemGreen and Color.systemRed instead of hardcoding #FF0000 and #008000.
I don't know if Qt is better but I've heard about 0 drama from them... I made a poll on reddit though and for some reason people (users) still prefer Gtk to Qt.
I think this is probably because GTK programs tend to sport UI designs that are nicer/friendlier and less “designed by a programmer”, even if they skew overly simple. Qt leans the other direction, with apps that are generally complete from a technical standpoint but have a good deal of room for improvement in UI design.
Incidentally I think this is also why distros centered around GTK-based DEs still dominate.
The UI designs are just a byproduct, there is nothing about Qt that makes it hard/impossible to have Gtk-like designs, but since Gtk is used by a lot of programmers, when encountering a program like those you mention, the chances are higher that it is written in Gtk than in Qt because more programmers use Gtk than Qt.
(note that this is specifically about Linux desktop applications, i think overall Qt is used more than Gtk outside Linux)
I think OP described it pretty well - stock Gnome is actually a nice desktop environment, I prefer it to Windows, does not even come close to MacOS.
I can believe that KDE Plasma still has issues though, it seems some sort of bomb was thrown during KDE 4 times in the codebase and it still has to recover. Though if nothing else, i do use KDE apps outside of Plasma (Kate, Krita, Dolphin, Okular, Spectacle) and they all seem very solid.
After a parent said that Gnome looked better than Kde I looked it up and found a number of posts criticizing Kde design decisions (padding, etc). I fully believe the Gnome people have a better design decision. But I don't think that criticism applies to Qt itself, necessarily.
It’s consistent enough that it makes me wonder if maybe something about the tooling is partially to blame.
> If you like to tinker with your own system, that’s fine with us. However, if you change things like stylesheets and icons, you should be aware that you’re in unsupported territory. Any issues you encounter should be reported to the theme developer, not the app developer.
Theming Gnome by editing the default style sheet is akin to distro theming the web by modifying Firefoz's default style sheet. Tons of websites will break in weird and interesting ways but the user won't know to blame the distro, because they never touched user.css or even know it's possible to change the default.
The same breakage also happens on KDE and Qt applications (and more, I have seen Eclipse launch with black text on a black background when dark mode is enabled) but the developers don't seem to care as much, or are less bothered by the false bug reports. I've also experienced the "this doesn't look anything like the screenshots" feeling because of the theme I have applied, but at least I know it's my own fault.
If a user is willing to take responsibility for breakage and such, then I'm not sure the devs are against theming as such.
> If you like to tinker with your own system, that’s fine with us. However, if you change things like stylesheets and icons, you should be aware that you’re in unsupported territory. Any issues you encounter should be reported to the theme developer, not the app developer.
For one, Gtk+ used to be advertised as a multi platform toolkit, with a port of GDK to Win32. Making Gtk+ widgets look like Win32 made sense for that.
Secondly, there were two groups of people using Linux and X11 in that era: one group who were exiles from commercial Unix, and another, faster growing group coming from Windows. For the former group, it was reasonable to want widgets to look more like Motif or Athena. The latter group wanted a more modern look, which could depart from old school Unix workstations.
I think what has changed is user expecations; in the the 1990s, there was an expectation that programs should look like the native toolkit; whereas by now, it's even questionable whether there is a native toolkit on Windows (due to the range of choice, each of which a noticeably different in look and feel) and program-specific appearance is the norm on mobile and web applications. Nowadays, you could probably write a slightly customised Adwaita app for Windows and you'd get by more satisfactorily than if you wrote a plain GTK app and tried to theme it to modern Win32.
Gtk 1.2 did not really have great Win32 support, was basically a one man show primarily to get gimp to run on Windows. The Win32 backend took off after gtk2, there was more commercial push from Ximian to make it a cross platform toolkit via Gtk# as well. And it wasn’t dropped in 3 or 4, though it definitely has lost development steam as commercial interest in it and cross platform desktop GUI toolkits in general has flagged and consolidated.
You're right that gdk2 ramped up Win32 support, I remember that now.
For example, before libadwaita screwed it all up I used to like to apply a custom theme to GNOME to cut down on the egregious padding everywhere, making the UI a much better fit for non-touch desktop OS use on a small laptop screen. There were several themes that accomplished that very well.
Of course some applications do their own cursor management so if you do it poorly your cursor hops around themes as you drag it over various windows based on the toolkit they use but then again, that's what we all signed up for.
WSL is a welcome addition of course. PS is pretty powerful. The rest is painful. :D
And if you ever happen to feel adventurous, various Gnome extensions such as Burn My Windows can give you more than enough eye candy while still keeping the stock theme.
https://extensions.gnome.org/extension/4679/burn-my-windows/
I think this is the first time I've heard anyone say this about the Linux desktop experience! Kudos to the GNOME/UBUNTU people I guess.
This theme has many subtle issues as well - the top padding of "vince" in the third window, the width of types etc.
There are a lot creative people, but making a theme work for all programs and people in all situations and edge cases likely requires a gigantic effort that seems best tackled by a corporate team with paid people giving one or two variants persistent attention and a pile of bug reports and fixing. You simply can't maintain a bunch of code or design that you are not using yourself daily, with problems you don't experience and can't reproduce.
Maybe, very maybe, it can be done by somebody with an extreme level of dedication: https://www.nordtheme.com/ports
I wasted an insane amount doing desktop customisation in the late 90's and early 2000's, time I haven't had for a long time. Luckily most default themes are pretty decent these days and sufficiently neutral to work for most situations.
My solution has been to just use the default Ubuntu theme that ships with Gnome. I find that theme just seems to work the best across most of my apps with a few small exceptions, compare this to other themes I've tried where only like half of the windows look right.
I'm sure there are better themes out there and I could achieve perfect consistency if I dug deep enough and tweaked enough things. But at least in my case I already spend many hours on my computer coding and something like desktop theming is super low on my list, it's one of those things I just need to work because I don't have time to be focusing on that crap.
The same goes for my desktop environment. I am well aware that Gnome is not the best and if I put it enough effort I could have a dream setup with XFCE or one of the many tiling window managers. But for me it just goes back to not having time, the thing I love about Gnome is that even though it may be more of a resource hog, it just f*king works.