Thanks for the feedback, everyone. I'm getting pretty psyched about this project.
Thanks to you, I've had several further ideas:
- Use RDF to describe the meta-data of the theme, like Description Of A Project does for software projects. There are tons of advantages to RDF, namely, that RDF aware applications won't have to know the universal theme format to use its meta-data. I bought a book on RDF to study it thoroughly for this project.
- Universal themes should have both a thumbnail and a preview image embedded in them. For example, icon sets could show just one icon as a thumbnail, and display several in their preview image.
- We choose the container format for its speed of extraction for single files. This is to allow thumbnailers and file indexers to grab thumbnails and meta-data about uthemes as quickly as possible. Currently, I'm thinking about using zip with 0 compression as the container format. (Zip is better than tar in this instance because it allows random access to files.)
In it would be the XML file, the thumbnail and preview image files, and a compressed archive for the theme. This would allow theme creators to actually choose their own compression formats if they know that the system supports it. Example:
- my_gtk_theme.utheme (a zip file with 0 compression)
- my_gtk_theme.tar.gz (a gzipped tarball, this format would be chosen by the theme creator)
- It should be possible to specify which language is the original one for meta-data, so as to make translation of the meta-data as accurate as possible.
- Theme types should use namespaces to uniquely identify them. This will hopefully prevent clashes between possible future theme types.
I'll be adding these ideas to the wiki page soon.