Universal themes: a proposal
revol at free.fr
Fri Mar 19 17:58:55 PDT 2010
> I've uploaded the draft specification the freedesktop.org's wiki. I
> that's acceptable to everyone.
> I have received a bit of feedback on my blog post, which is again:
Sorry I really didn't have time to dig it...
I've been thinking about a cross-platform theme format for a while
Though I just hope it won't get too X11-specific, ideally it would be
usable by Haiku and others like AROS and ReactOS maybe.
Some comments of what I read:
- xml: hmm ugh, well... yeah I've yet to learn how to use libxml2...
- new mimetype & ext: fine, I can even have Haiku's Themes to
explicitely support it with the mime db.
- .tar.gz: not my prefered format, plus it doesn't maintain xattrs (at
least on Haiku, and not by default on Linux), but it probably doesn't
matter much as most data will likely have to be converted anyway so it
should be ok.
- no screensaver: well, we can always keep the name of the current
screensaver, or a limited set of classic ones. (in Haiku Themes also
saves the saver's settings (a serialized BMessage).)
- packaging: that's a feature I've yet to finish in Themes
- color categories: it's quite easy to pick the closest color in a
palette from the base color of a theme, just need the smallest distance
in the RGB colorspace, there is a formula for this... so an utheme
exporter can do it automatically from desktop color for ex.
- another option for archiving is to use data: in the xml file, as is
done in svg for bitmaps, cf.
though that might not be usable for large bitmaps, but possibly
cursors. It would complicate the xml some more though...
- things like icons would ideally be available in a vector format.
Haiku uses HVIF because SVG is way too large to fit the inode
small_data section (ZETA tried it and failed), it's possible to convert
an SVG into HVIF, but it's not optimal... but I suppose this would have
to do. Themes doesn't support changing icons yet anyway.
While it's useful to have target-ready files, I'd like to have as much
as possible mapped into a format usable by others.
It might be nice to be able to extend an existing theme with another OS
/desktop version of it, to customize the OS-specific parts. The rest
will always be "best effort" anyway.
Something else that might be useful is adding fonts, though it might be
abused to include non-free fonts even unintentionally...
Btw, strings like name & desc don't mention an encoding, I suppose it's
Also, in Themes I made it easy to choose which part we want to apply/
save (checkboxes per add-on), and made it extensible.
A list of existing OS/Desktops to check for theme formats:
* GNUstep & Etoilé (Camaelon):
Things that could be made themeable:
* terminal colors
More information about the xdg