Re: GNOME Theme Package Proposal



Il giorno ven, 22-10-2004 alle 22:18 +0100, Thomas Wood ha scritto:

> The Problem
> ===========
> 
> There is no mime-type or file format for packages that contain themes
> and artwork that control the appearance of the GNOME desktop.
> Historically, if an author has wanted to distribute a theme he has
> made, then it is just a case of zipping up the directory of the theme.
> However, these days authors often want to distribute several different
> types of themes within the same package to create an overall
> appearance across the whole desktop (window manager, icons,
> background, e.t.c.). So far there is no standard format for theme 
> packages...

Well, honestly I don't agree entirely. So let me expose my theme-blue-
sky.

What is/should be themeable:
        Widgets 	- managed via GTK+ themes
        Icons		- managed via icon themes
        Windows		- managed via metacity theme
        Background	- optional
        Splash		- optional
        Font		- optional

Please note that those items should be __ORTHOGONAL__ (yeah, this is
really important IMHO): this means that GTK+ themes should not provide
gtk+ stock icons inside them. Note that now (GTK+ > 2.4) you can provide
GTK+ stock icons inside an icon theme.

Example: see Bluecurve. A really good and complete theme for widgets and
for icons, but try to use its appearance for widgets and standard GNOME
theme for icons. You'll have a really odd appearance, 'cause Bluecurve-
gtk provides GTK+ stock icons.

So fist request for theme maker should be: respect orthogonality.

BTW one day icon themes will change the appearance of both GNOME and
KDE, I hope, so it's important don't lock them in a GTK+/GNOME specific
package.

BTW2 I hope that the orthogonality request will be applied to themes
available on art.gnome.org and evangelized on gnome-look.org :-)

Now, the second step is: how can I "pack" a theme that provide themes
for widgets AND icons AND windows?

IMHO the answer is: use the theme index file (.theme file).

A theme index file includes the keys GtkTheme, IconTheme, MetacityTheme,
ApplicationFont[1].

Scenario 1:
I'm a theme maker. I build up a new theme using, for example, Crux GTK+
theme,  Nuvola icons and Glider metacity theme. I wrote the .theme file
and publish it on art.gnome.org. People will download this file, will
double click on it and the new (global) theme is "installed" and
applied.

Scenario 2:
I'm an user. I find a cool global theme on art.gnome.org, I download it,
I double click on it and an alert will appear:

 ________________________________________
|________________________________________|
| Icons not available!                   |
|                                        |
| The theme you are installing needs     |
| an icon option that is not available   |
| on your computer. Do you want to       |
| download it?                           |
|                                        |
|                 [ Cancel ] [ Download ]|
|________________________________________|

The theme installer reads the keys, checks if options are available and
eventually shows the alert.

The big trouble of this approach is that we need a standard location and
a standard file name format for themes. Or a way to include the location
in .theme file.

Or a new net protocol/service to search, fetch and make available
themes. :-)



> A New File Format
> `````````````````
> The directory structure should look something like this:
> 
> .
> |-- background/
> |-- gtk/
> |   `-- gtkrc
> |-- gtk-2.0/
> |   `-- gtkrc
> |-- icon/
> |   |-- index.theme
> |   `-- scalable/
> |-- index.theme
> |-- metacity-1/
> |   `-- metacity-theme-1.xml
> `-- splash/
> 
> 
> This should then be wrapped up in a gzipped tarball and given the 
> extension
> .gtp (Gnome-Theme-Package).

Dunno. I don't like it. Provide a new mime type just to pack theme
options together is not a smart solution IMHO. .theme files are yet a
description of a theme. Why create a new mime? Why don't extend .theme
file format to retrieve missing options?



[1] mmhhh there should be a background key too, but GNOME sysadmin guide
don't report it. :-|
-- 
Luca Ferretti <elle uca libero it>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]