<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"	>
<channel>
	<title>Comments on: Towards a third version of the theme format: some design goals</title>
	<atom:link href="http://blogs.gnome.org/metacity/2009/07/13/towards-a-third-version-of-the-theme-format-some-design-goals/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/metacity/2009/07/13/towards-a-third-version-of-the-theme-format-some-design-goals/</link>
	<description>"Many window managers are like Marshmallow Froot Loops; Metacity is like Cheerios."</description>
	<lastBuildDate>Sun, 26 Sep 2010 15:08:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Copper: an experiment with CSS - …for the adult in you</title>
		<link>http://blogs.gnome.org/metacity/2009/07/13/towards-a-third-version-of-the-theme-format-some-design-goals/comment-page-1/#comment-1028</link>
		<dc:creator>Copper: an experiment with CSS - …for the adult in you</dc:creator>
		<pubDate>Wed, 15 Jul 2009 01:09:23 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/metacity/?p=598#comment-1028</guid>
		<description>[...] CSS has possibilities as a window border format: it is a standard and well-understood format and there are plenty of tools around to edit and parse it. However, it is certainly not as powerful as v2 and probably cannot be.  That may not be a problem, as we said before. [...]</description>
		<content:encoded><![CDATA[<p>[...] CSS has possibilities as a window border format: it is a standard and well-understood format and there are plenty of tools around to edit and parse it. However, it is certainly not as powerful as v2 and probably cannot be.  That may not be a problem, as we said before. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Screwtape</title>
		<link>http://blogs.gnome.org/metacity/2009/07/13/towards-a-third-version-of-the-theme-format-some-design-goals/comment-page-1/#comment-1017</link>
		<dc:creator>Screwtape</dc:creator>
		<pubDate>Tue, 14 Jul 2009 04:34:02 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/metacity/?p=598#comment-1017</guid>
		<description>I think all these goals are laudable and worthy. However, I have some comments:

1. Standard format: I think this is going to be the most difficult to achieve overall, although picking standard formats for various components should be fairly simple (ZIP for archiving, PNG for static images, etc.)

2. Editable: This goal is a black mark against any generic cascading system such as CSS uses; creating a user interface that *depicts* the cascade is fiendishly difficult, I&#039;ve never seen a CSS editor as comprehensive and comprehensible as a plain text-editor.

5. Single file: Unpacked trees should also be supported, for ease of development.

7. Named colours: I notice Ubuntu&#039;s GTK+ theme configurator has buttons that allow you to configure the colours of various things; it seems to work by setting a &quot;gtk-color-scheme&quot; key in the theme file. If it were possible to hook into that, that would be pretty neat.

And here&#039;s some more goals you might want to add to the list:

Resolution independence: v2 themes resize themselves to account for the size of the window title font, but extreme sizes in any non-trivial theme can look pretty silly. CSS is a good example, where every measurement is in terms of some particular unit which is defined relative to some external factor (such as the screen&#039;s DPI, the size of the current font or the size of the window)

Extensibility: No matter what goes into a v3 theming spec, people will ask for more and different things in the future. If the v3 format clearly defines how to ignore unrecognised syntax, it may be possible to avoid having to bump the theme version for a long while. Again, the CSS design principle of &quot;forward compatible parsing&quot; is a useful model to follow, whether or not themes actually use CSS syntax:

http://www.w3.org/TR/CSS1/#forward-compatible-parsing

Declarative syntax: This is sort of implicitly covered by &quot;2. Editing&quot; and &quot;11. Maximum power&quot;, but I think it&#039;s worth breaking out on its own. Theme syntax, where possible, should be expressed as declarative rules rather than as imperative algorithms. This should make editors at least possible, and makes it more difficult for theme-authors to do crazy things (although no doubt they&#039;ll find a way).

Broken features are new features: There&#039;s a number of v2 theme features that have never really worked correctly, and hence nobody really uses them (Thought: it would be useful to download a bunch of Metacity themes from gnome-look.org and do some bulk analysis of how frequently various features are used). Many of those broken features are actually pretty good ideas, though, so they should be dumped into the enhancement-request hopper along with all the other v3 theme features.

Second-system syndrome: There&#039;s a lot of bug reports in bugzilla asking for all kinds of crazy features to be added to Metacity&#039;s theme format (I&#039;ve filed a few myself) and I know if I was responsible for organising a v3 format, the temptation to solve them all at once would be near unbearable. However, if the v3 format is just a reformulation of the working v2 features into a new, extensible format, all the shiny new features can be safely implemented later.</description>
		<content:encoded><![CDATA[<p>I think all these goals are laudable and worthy. However, I have some comments:</p>
<p>1. Standard format: I think this is going to be the most difficult to achieve overall, although picking standard formats for various components should be fairly simple (ZIP for archiving, PNG for static images, etc.)</p>
<p>2. Editable: This goal is a black mark against any generic cascading system such as CSS uses; creating a user interface that *depicts* the cascade is fiendishly difficult, I&#8217;ve never seen a CSS editor as comprehensive and comprehensible as a plain text-editor.</p>
<p>5. Single file: Unpacked trees should also be supported, for ease of development.</p>
<p>7. Named colours: I notice Ubuntu&#8217;s GTK+ theme configurator has buttons that allow you to configure the colours of various things; it seems to work by setting a &#8220;gtk-color-scheme&#8221; key in the theme file. If it were possible to hook into that, that would be pretty neat.</p>
<p>And here&#8217;s some more goals you might want to add to the list:</p>
<p>Resolution independence: v2 themes resize themselves to account for the size of the window title font, but extreme sizes in any non-trivial theme can look pretty silly. CSS is a good example, where every measurement is in terms of some particular unit which is defined relative to some external factor (such as the screen&#8217;s DPI, the size of the current font or the size of the window)</p>
<p>Extensibility: No matter what goes into a v3 theming spec, people will ask for more and different things in the future. If the v3 format clearly defines how to ignore unrecognised syntax, it may be possible to avoid having to bump the theme version for a long while. Again, the CSS design principle of &#8220;forward compatible parsing&#8221; is a useful model to follow, whether or not themes actually use CSS syntax:</p>
<p><a href="http://www.w3.org/TR/CSS1/#forward-compatible-parsing" rel="nofollow">http://www.w3.org/TR/CSS1/#forward-compatible-parsing</a></p>
<p>Declarative syntax: This is sort of implicitly covered by &#8220;2. Editing&#8221; and &#8220;11. Maximum power&#8221;, but I think it&#8217;s worth breaking out on its own. Theme syntax, where possible, should be expressed as declarative rules rather than as imperative algorithms. This should make editors at least possible, and makes it more difficult for theme-authors to do crazy things (although no doubt they&#8217;ll find a way).</p>
<p>Broken features are new features: There&#8217;s a number of v2 theme features that have never really worked correctly, and hence nobody really uses them (Thought: it would be useful to download a bunch of Metacity themes from gnome-look.org and do some bulk analysis of how frequently various features are used). Many of those broken features are actually pretty good ideas, though, so they should be dumped into the enhancement-request hopper along with all the other v3 theme features.</p>
<p>Second-system syndrome: There&#8217;s a lot of bug reports in bugzilla asking for all kinds of crazy features to be added to Metacity&#8217;s theme format (I&#8217;ve filed a few myself) and I know if I was responsible for organising a v3 format, the temptation to solve them all at once would be near unbearable. However, if the v3 format is just a reformulation of the working v2 features into a new, extensible format, all the shiny new features can be safely implemented later.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/metacity/2009/07/13/towards-a-third-version-of-the-theme-format-some-design-goals/feed/ ) in 1.16236 seconds, on Feb 12th, 2012 at 7:15 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 12th, 2012 at 8:15 am UTC -->
