Re: GEP-2 Theme Sets (aka Metathemer)



Jeff Waugh <jdub perkypants org> writes:

> <quote who="Bill Haneman"/>
> 
> > On Tue, 2002-10-29 at 17:01, Calum Benson wrote:
> > 
> > > http://developer.gnome.org/gep/gep-2.html
> > 
> > I take it that it's too late to put the implementation (presuming
> > agreement is reached on the requirements) in 2.2's feature list, even if
> > we got the implementation UI done by API/UI freeze?
> 
> By my very rough count, you have about 48 hours to get it in and proposed.

I thought I'd give this a shot.

I read through the gep and tried to implement a metatheme selector for
the control-center for 2.2.  I really, really didn't want to go another
release without having some form of themeballs in GNOME, and am hoping
we can get a working solution out of this.  I put two screenshots of my
attempt up at:

  http://www.gnome.org/~jrb/newtheme3.png
  http://www.gnome.org/~jrb/newtheme4.png
  (the second shot admittedly needs a little love)

Code available at:
  http://www.gnome.org/~jrb/gnome-theme-manager.diff

Basic Approach:

I thought about having a separate gconf key for a 'metatheme' spec, but
it just didn't make sense.  What does it mean when your metatheme key is
'thinice' but your gtk-theme key is 'metal'?  Consequentially,
metathemes are implemented solely as a list of theme elements found in
subdirectories of the theme path.  To this extent, I just made up a
.desktop file format that includes all the elements of the theme.

What this means is that a particular metatheme is currently set iff all
the required elements of the theme are also set.  Switching to a theme
just has the effect of saving you from having to set all the individual
elements directly -- but it does not have any other consequence.  It
does not automatically set things like the font and background, but has
the ability to tie those things to the theme.

This means that when you don't match any metatheme exactly, you're in an
inbetween state.  I'm currently listing this in the UI as 'Currently
modified', but I'm sure we can come up with better wording here.  I
would like to add the ability to save the current settings to a new
state, but haven't added that yet.  It's less important for the next
release, anyway.

I also would rather not consider any form of generic theme
extensibility.  We currently export quite a bit of interesting
information via Xsettings, and can easily add more if needed.  It seems
to me that apps like Mozilla can get all the information they need from
that.  Extending it generically seems like a solution in search of a
problem -- let's try to get GNOME-wide metathemes working first.

Anyway, I haven't checked the code in yet, as I'd like to run it by this
list first.  Still, I think this is important to have, and will be
spending this weekend the next week at work making sure it functions
well.

Thoughts?
-Jonathan



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