[compiz] Flat file backend (ini)

Mike Dransfield mike at blueroot.co.uk
Tue Feb 27 11:24:35 PST 2007

David Reveman wrote:
> 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.
I will write a fam plugin as well and test if that works
correctly too.  I think it will  need extending a bit but I didn't
look too hard.

> 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.

My idea was that there would be a core function which could
revert an individual option value to its default value, this could
be copied only when it changes to save memory.

This would mean that it would be easy to expose it via dbus for
the different settings managers, plus it would mean that the
gconf and ini (and any others in the future) would not have to
know how to revert the defaults.

Maybe we could add a compiz_defaults.h and a plugin_defaults.h
file which would contain all the defaults in one easy place.  Packagers
would be able to patch this same file differently for each package.
I know they can already do this, but moving everything to 1/2 files
would encourage it.

This raises another question I forgot about, how are multiple screens
handled?  ie. how does the schema file get modified depending on how
many screens are being used?

>> 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
> repo?

I think it would be nice to include this one in the freedesktop.org
repo because its more of a core plumbing plugin than an extra.
I'd like to work out all the bugs first though, I am having a problem
with edges and the wall plugin.  It is working when I use gconf, so it
must be my problem.

The only difference is that I incrementally add to the action option
whereas gconf does it in one hit.  Do you think this would cause a
problem?  The edges work for other plugins (ie. scale)

More information about the compiz mailing list