The future of the native theming support
Joel Holdsworth
joel at airwebreathe.org.uk
Tue Apr 26 10:35:00 CDT 2016
> There also were some questions about integrating new themes to the
> existing system. If it matters, I found a way to make it transparently
> for the end users. A new "GTK+" or even "Mac" theme can live together
> with old MSSTYLES themes without need of switching any "theme drivers"
> as it was said in my GSoC proposal.
wine-staging has an optional feature to do this with Gtk [1]. The
results are so-so.
The issue is that typically uxtheme and an external toolkit have very
different ways of describing layout and therefore the there is no 1:1
mapping between any arbitrary Gtk theme and uxtheme. The result is that
certain themes look much more glitchy than others - but it will look
extremely crappy if the integration is less than pixel perfect, which is
going to be extremely hard without lots of fragile heuristics, or manual
artistic tweaks.
I recommend having a conversation with the author of those wine-staging
patches, so you can find out how things are going with that. He's got
some things working, but still lots of glitches. These glitches may be
fixable - but I'm fearful that some problems may come down to a design
conflict between windows and Gtk+.
If you want to spend time on this, I personally would love to see it
come to fruition - but be warned, it's a risky project.
In some ways this is analogous to the wine icon set. Ideally it would be
nice to pick up icons from the host /usr/share/icons directory. The
problem being that in windows, icons are baked into the executable
binary. In principle applications could be tricked about the binary
resources at runtime, but in practice this is getting into very
unpleasant territory where we're in severe danger of causing breakage.
So when I updated the icons [2], I chose the Tango icon theme because it
represented a modern-looking compromise between the icon styles of most
desktop environments.
Andrew Eikum's suggestion is rather similar, but for the ux theme. To me
that sounds a lot easier to do.
Joel
[1]
https://github.com/wine-compholio/wine-staging/tree/master/patches/uxtheme-GTK_Theming
[2] https://airwebreathe.org.uk/doku.php?id=wine_icons
More information about the wine-devel
mailing list