[compiz] Flat file backend (ini)

David Reveman davidr at novell.com
Mon Feb 26 07:13:01 PST 2007

On Thu, 2007-02-22 at 16:01 +0000, Mike Dransfield wrote: 
> I have written an initial flat file configuration
> backend for Compiz.  At the moment it is using
> FAM for monitoring of files (it can be compiled
> without monitoring support for now).


> It is working fine but there are a couple of problems.
> 1. It looks like I should use addFileWatch rather than
> directly accessing FAM, is this correct?  I notice dbus
> uses addFileWatch rather than (*d->addFileWatch) is
> this intentional, and does it get wrapped in the same
> way?

Yep, you should use the file watch interface instead of FAM. You should
call addFileWatch to add a watch for a specific file or directory.
addFileWatch will then call display->fileWatchAdded which is a wrapped
function that plugins that provide file watch functionality like the
inotify function will hook into. If you have any problems with using the
file watch interface please let me know.

> 2. I cannot see how to work out what the defaults are
> so that people can revert to default values.  As far as
> I know Compiz does not store the original value so the
> only way to revert back when someone deletes a config
> file is to reload Compiz.  I could keep the defaults in a
> separate system wide file, but that would probably have
> problems.  I like having it only rely on user config files.
> Would adding some default storage to the core make sense?,
> we could then have a dbus method which would revert an
> individual value easily.

I'm not sure. I'd like to make it easy to adjust the defaults while
packaging and do so differently for different configuration systems. It
makes a lot of sense to have different default settings for e.g. gnome
and kde. This is possible right now by patching the gconf schema file
during packaging.

Why do you think a system wide file would cause problems? It would allow
the same kind of adjustments to the defaults during packaging as the
schema file is currently doing, which is nice.

> http://www.anykeysoftware.co.uk/compiz/plugins/ini.c
> http://www.anykeysoftware.co.uk/compiz/plugins/Makefile.ini
> Any other comments or suggestions are welcome

How about getting this into the git.compiz.org or the freedesktop.org

- David

More information about the compiz mailing list