Re: GNOME Theme Package Proposal
- From: Luca Ferretti <elle uca libero it>
- To: Thomas Wood <thos gnome org>
- Cc: gnome-themes-list gnome org
- Subject: Re: GNOME Theme Package Proposal
- Date: Tue, 26 Oct 2004 10:21:48 +0200
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]