Imagine my surprise and frustration to find out this morning that my efforts to design a "universal theme" were redundant, as a similar idea has already been discussed and specified.
Here are the mailing list discussions dating all the way back to 2007. (Argh!)
You can see the current Theme Package Spec here.
Meanwhile, I have been studying RDF/XML, Dublin Core and OpenDocument extensively to design Cooperating Themes (renamed from Universal Themes). I have published my work in this bazaar branch (see the files).
Comparing the two theme package formats was fascinating. I've prepared a table summarising the differences so far:
|ThemePackage||Cotheme||Comments by Flimm, author of Cotheme|
|File extension||.theme||.cotheme||.theme is already used by Windows themes, as well as other file formats. .cotheme has not been used, as far as I am aware.|
|Mime-type||application/x-themepackage||application/x-cotheme||Both are unique, AFAIK|
|Archive format||gzipped-compressed tarball||zip||Gzipped tarballs are the traditional archive format for themes on free desktop environments. However, the zip file format is more universally accepted. In addition, zip files allow random access to its contents by file name, allowing rapid extraction of metadata files or thumbnail files. Different files can be compressed at different levels and at specified positions in the file. This is important for maintaining the magic number. OpenDocument packages use zip.|
|Magic number||None||application/x-cotheme found at byte x|
|Metadata file format||an INI file (similar to .desktop)||an RDF/XML file||While INI files are simpler to edit by hand, their format is not well documented, leading to incompatible parsers. XML files are also reasonably easy to edit by hand. The XML file format is very well defined, and parsers exist for practically every programming language. Developers and theme creators would not need to know RDF at all, similar to DOAP, the XML format chosen would coincide with RDF/XML.|
|Embedded thumbnails||None||Included (Thumbnails/thumbnail.png)||Cotheme's thumbnail mechanism is similar to OpenDocument's.|
|Include multiple themes||Yes||Yes|
|Theme types allowed||Not specified||Almost any that meet the minimum requirements|
|Theme type names||Simple but limited: gtk-2.0, xfwm4, etc||Uses URNs, unlimited|
|Required and recommended meta-data||
||Cothemes use the well-established vocabulary of Dublin Core for some of its metadata. Dependencies on other themes can be specified (for example, icon themes on other icon themes). Dependencies on software programs or libraries can be specified (for example, GTK themes on GTK engines), in a way that would allow automatic installation of the dependency.|
|Can metadata be translated?||Unspecified, probably yes||Yes|
I'll update the table here, if need be. I'll be emailing Stephan Arts, as he seems to be the driver behind Theme Package Format. It hasn't been adopted much so far, so it's still up for discussion in my opinion.
So what do I think of previous effort? I quite like it. It's very simple and not too different from current theme formats in free desktop environments. People are familiar with .desktop or .INI style. There's no XML to wrap your head around if you're not familiar with that. Just check your files in a .tar.gz with a single ThemePackage.index file and you're done.
On the other hand, it's missing some features I badly want: the main one being thumbnails. I also feel that Cothemes are much more future ready and universal: it uses RDF for metadata, it is easily expandable, it relies on solid XML and a universally accepted archive format. The dependency feature is nice as well, I feel.
If after any discussions I have with interested parties at XDG the consensus is not to go with Cothemes at all, I'll be disappointed, but I will swallow my pride. Theme Package Format is not bad. I've spent a lot of effort in designing Cothemes, but so have the designers of the Theme Package Format. I learnt a lot about RDF and OpenDocument on the way, so it hasn't been a total waste.