Re: Re-inventing Metatheme



On Tue, 2002-08-27 at 07:41, Bill Haneman wrote:
    Hi:
    
    Since the accessibility team has some requirements around Metatheme,
    including a couple which we think argue strongly for the existance of a
    metatheme mechanism as part of the core desktop, I thought I'd try to
    summarize our perception of what a metathemer needs to do.
    
    The ideas so far sound good - but of course we have some comments:
    
    * we agree with Maciej that the question "what is my current metatheme"
    is a reasonable one, so it makes sense to have a metatheme gconf key;
    this requires some way of persisting the metatheme/gtk-font-icon-etc.
    key relationships.
    
Right. That would of course be one of the additions. I only
created a proposal for the directory layout, not the entire
system. I wanted to get feedback on that first. Now that I
have some, I'll go through them, and make a couple mockups
for the UI and create a full proposal.
    
    * desktop background belongs in the metatheme, though of course it
    should continue to be customizable
    
Indeed. As should every other aspect of the metatheme.
    
    * users like to customize settings; I submit that if Jungle is selected
    and the background image is then changed in the background capplet, user
    should see "Jungle (custom)" as the current theme.
    
Windows does this by adding a "Current Desktop Settings" item to
the list, if something has been modified. I think it may even be
a bit stupid about this, but I don't remember exactly, as I
haven't really used Windows in a few years.
    
    * we should have a "create new metatheme from current settings" button;
    this also implies a requirement for a corresponding "delete" button.
    
Right. Windows also implements this, by having a "Save As..." or
something similar, button. It saves the "Current Desktop Settings"
as a new "Desktop Theme" in the system-wide directory (iirc). This
of course, is not an option for us, unless we are root, or have
ample permissions to do so, so we would just write to ~/.themes/.
    
    * since there will undoubtedly be some apps that don't follow the gtk+
    theme, there is still need to accommodate additional gconf keys in our
    metatheme back-end implementation.  (using gtk+ themes and icon sets is
    preferable but we need to build in extensibility and flexbility).
    
Right. Hence the addition of suggestions for alternate
applications which we don't directly control, so we could
create a standard for where to place theme information.
    
    * the point of the metatheme is to group and simplify, thus the number
    of UI elements should be kept to a minimum: we suggest
    
    	1) scrolling list of metathemes by name, with "custom" 		indication if
    user has further modified gconf keys
    	2) 'create new' button that "snapshots" current keys and pops up
    		"Name for new theme" dialog
    	3) 'delete' button
    	4) a preview/snapshot of the theme, when available.
    
    	and possibly
    	5) "revert" button that reverts a "custom" metatheme to the 	metatheme
    defaults
    
    pressing the revert button (or toggling the checkbox) would be the
    equivalent of re-selecting a theme which has been customized. 
    Alternatively the function of #5 and the 'custom' indication could be
    combined into a single checkbox, if the resulting semantics were not too
    confusing (i.e. the checkbox indicates whether the current theme is
    customized, and un-checking it reverts the current theme).
    
    Calum and I will try to post a mockup later today.
    
I'll also make a mockup very soon. We can compare and come up with
something final. I'm also considering making mockups of other
capplets that would affect similar parts of the metatheme
information. Windows contains most of the stuff in an "Appearance"
control panel. Sounds and Mouse Cursors are in other control
panels, appropriately.
    
    With respect to issues of back-end gconf key organization, it matters
    less to us as long as the effect is achievable; however we do think that
    some extensibility is important for including gconf keys other than
    those for existing gtk+ themes, fonts, background, etc.  In other words,
    a metatheme would be, in the most general form, a named collection of
    gconf key-value pairs that affect various parts of the UI appearance and
    behavior, which can be applied as a group via a simple dialog such as
    the one we describe above.
    
    best regards,
    
    Bill
    
Indeed. There are several current GConf keys which I feel are in the
wrong place. A lot of them belong under /desktop/. Most all of the
theme keys should be under /desktop/. There are a few, very isolated
cases, where I could see the need for the keys under /apps/<app>,
though, those are mainly for Metacity/Sawfish, but if we are going to
be standardizing on Metacity, perhaps we should just move the theme
key and font key to /desktop/, and any other window manager would just
not work correctly with what we are doing, but would still have it's
own themability stuff. It wouldn't be hard to provide methods for
setting the themes for other window managers, however, it would be
pretty tedious and diverge from the goal a bit, though it would help
to maintain the extensibility.

Thank you for the feedback.

-- dobey





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