Planning the release 2.10 of themes - part 1



Hi everyone, people that work on and maintain GNOME themes. The purpose
of this email is to trace a route for the next release (or releases) of
GNOME themes, if you like it. Or at least try to do it :-)


--- The themability, today ---

Currently GNOME Desktop includes three packages related to themes:
gtk-engines, gnome-icon-theme and gnome-themes. An additional package,
gnome-themes-extra is not officially included.

gtk-engines provides Pixbuf, Redmond95 and Metal engines for GTK+
toolkit. Redmond95 and Metal provide a control option[1] too.

gnome-icon-theme provides a lot of icons. Default icons.

gnome-themes includes engines, control options, window options and
additional icon options.

Some window options are available in metacity package too.


--- The blue sky, IMHO ---

All themes need is organization.

First: what can you make themeable? Answer: 
      * widgets apperance, using a different engine and/or a RC file 
      * windows borders, using a theme for Metacity 
      * icons, using an icon theme

Plus, you can "pack" a combination of those items and call it theme.

So in the category "needed for themability" we have the following
packages: 
      * gtk+ - provides the default/fallback widget engine (and RC). 
      * metacity - provides the default/fallback windows theme. 
      * g-i-t - provides the default/fallback icon theme.

In "optional" category we have 
      * gtk-engines - provides other usable/cool engines 
      * gnome-themes - provides additional options for controls, window
        borders and icons.

In short my proposal is: 
     1. pack all engines we use (or we think good for users) in
        gtk-engines 
     2. remove windows themes from metacity, except one, the
        default/fallback one 
     3. pack in gnome-themes additional control options, window options
        and icon options

Next email(s) will cover #2 and #3 in detail. So don't flame.


--- Additional engines ----

A theme engine is not simply a control option. But a control option
needs one (or more) engine to be "referenced".

A theme engine is not related to GNOME, it's related to GTK+. But GNOME
uses it to provide control options.

So I believe that put engine code in gnome-theme package is wrong. All
major engines should be provided by gtk-engines package.

The route is simple: 
     1. move HC, Smooth, Thinice, Industrial (it's in
        gnome-themes-extra), Crux, LightHouseBlue and Mist engine code
        in gtk-engines 
     2. eventually remove Redmond95 and Metal (do we really still need
        them?)
     3. add documentation about engines for theme makers. They need to
        know available options without read the code.

Put here only the engine code and a minimalistic gtkrc. You need a gtkrc
file to make the engine available, but provide it "as is". Ideally use
the GTK+ default colors and settings. Oh, maybe call it "xxx-engine"

Why we should do it? Well, first of all to have a rational organization.
Please note that currently Smooth engine is installed by gnome-themes
and gnome-themes-extra too: the code in g-t-e should be older then code
in g-t, so 'cause you typically install g-t-e after g-t, you downgrade
Smooth engine. So if/when someone will write the Butter engine from
Eugenia mochup, we will simply add it to gtk-engines package and upgrade
dependences in g-t and/or g-t-e to use it.

Second to provide all or at least most of the cool engines of the moment
to users. When an uses goes to art.gnome.org and downloads a control
option based on Industrial, he don't know that Industrial could not be
installed in him system. Of course this don't mean that we have to
include all available engines in gtk-engines. Just the most used/popular
in available control options in art.gnome.org

Third to to be more friendly with non-GNOME users. A GTK+ engines don't
depend on GNOME, it depend on GTK+. 


Comments, proposal, flames?

------------------------------------------------------------------------

[1] option == entry in the list in Theme Details window

[2] just like ggv: you can use it to view PS files, but you don't need
it to login in GNOME and work. On the contrary, nautilus is a needed
module for GNOME Desktop.




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