Requirements and pre-analysis for a cross desktop configuration infrastructure

Philip Van Hoof spamfrommailing at
Mon Mar 21 11:50:53 EET 2005

On Fri, 2005-03-18 at 13:13 -0500, Jeffrey Vaughan wrote:

> The other reason is for revision control.  I want a way to screw with my 
> desktop settings, and partially revert changes.  Just providing a way to 
> dump a d-conf configuration to plain text (foo="bar", not xml!!), and 
> load a human editable format, should be sufficient for the geeks.
> What i'm picturing is something like:
> <change my menu color>
> $ dconf --dump conf.txt  <or a gui button>
> $ svn commit
> <change lots of interesting settings>
> $ dconf --dump conf.txt
> $ svn commit
> <uh-oh! My i really screwed the pooch when i changed the menu color>
> $ svn diff -r 4:5 conf.txt
> - MenuColor="Periwinkle"
> + MenuColor="Puce"
> $ echo "MenuColor=\"Periwinkle\"" > nicecolor
> $ dconf --merge-in nicecolor
> Obviously this is really command line focused, but I don't think that's 
> essential.  The point I want to make is that it can be really useful to 
> grab a setting change that happened a long time ago and reverse that one 
> change without messing up intermediate settings.

Something like that is, indeed, perfectly doable. It isn't doable or it
isn't "wise" imho to use that ini-file style configuration format as
default backend-format to use. 

In the document that I've posted you can find a section about the
possibility to backup and restore configurations using the standard API
(not just a commandline tool). Once that API is available, it's trivial
to create a commandline tool like the one you're proposing. Or even
trivial to create an SVN or CVS plugin (for an editor or IDE) that can
handle crazy types of configuration-situations and that can provide a
deep integration of source-control systems with this configuration

But important to know is that the source-control system is detached from
the configuration-system itself. It's by creating dumps and merging
changes that you "connect" the source-control system with the
"configuration system". They aren't nor should be more tightly
integrated for they serve both a totally different purpose. 

Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
gnome: pvanhoof at gnome dot org
work: philip dot vanhoof at cronos dot be
junk: philip dot vanhoof at gmail dot com,

More information about the xdg mailing list