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