@jamesh has been working on using content interfaces for themes. See Supporting desktop themes via the content interface