With 16.04 slowly approaching the point where it's time to start thinking about what to do with my machines (because 20.04 will be the last chance at a better LTS before it EOLs), I thought I'd revisit this.
I remember fixing some bugs in the old Clearlooks XML files way back when 14.04 came out, and I thought I could probably at the very least hack up a script to just generate a new theme file from a template and four user-supplied colors.
After poking around for a bit, I realised something that came as quite a surprise: TraditionalOK and TraditionalGreen had actually removed all the references to VARIABLES in those files and replaced them with LITERALS...
I expect there was a good reason for it at the time, but a quick experiment showed that they do in fact still / now work fine in 19.04 when changed back to using variables again, which takes the (user-)workload involved in restoring this basic color-choice functionality from "100s of changes in 1000s of lines" to something much more manageable.
After a few hours of stumbling around trying to figure out how the pieces fit together, I've gotten pretty close to the point where only a few lines need changing to get back all (or nearly all) of the color choice functionality that was lost after 16.04. So now it's trivial for even slightly-savvy users to do, and also simple enough that I might even at some point throw together a little applet to take care of it.
I'll try to finish things up next weekend: if I manage it, I'll post the files here.
One "interesting" problem I've come across is that despite having the controls properly referenced in index.theme the Appearance widget fails to actually load them when you select the theme. You have to use the Customize button and select them manually, whereupon they work perfectly. I'm obviously missing some undocumented trick needed to pull the pieces together (unless it just doesn't work properly when a theme is installed in ~/.themes because there's an absolute file path in there somewhere). If anyone knows what might be causing that, please let me know. Thanks.
- OK, it works fine if you save it as a new theme and then replace the theme file with the new one. The only differences were that it removed the Comment value and removed the UTF8 line entirely, so it's probably just a garbage parser imploding. Regardless, that piece works nicely too now.