[compiz] Annoying gconf/ccsm behavior

Bob Richmond bob at lorez.org
Thu Nov 27 12:18:02 PST 2008


Fedora 10 ships with compiz and launches it as: compiz 
--ignore-desktop-hints glib gconf

This causes compiz to load the glib and gconf plugins at startup. This 
works fine.

The problem arises when the gconf database does not include those 
plugins in /apps/compiz/general/allscreens/options/active_plugins. What 
happens is that the plugins get loaded at startup, and after all the 
"general" (read: core) options are read, it then unloads any plugins not 
in the active_plugins list right after, causing the gconf plugin to not 
configure any other plugins, and stop listening for gconf notify events 
so further configuration does not take effect at runtime (even for core 
configuration options).

Using gconf-editor to add gconf to the active_plugins list allows it to 
work as expected (a viable replacement for the ini plugin).

HOWEVER, ccsm does not appear to have any knowledge of the existence of 
the gconf plugin, so whenever you add or remove another plugin from the 
list, it ends up removing gconf from the list as well. Immediately 
causing compiz to stop listening for gconf notify events (see above).

I would be happy to supply a patch to fix this behavior, but I would 
appreciate direction on how best to fix the bug.

Some options I considered:

1: Treat plugins passed on the compiz command line as unremovable at 
runtime. active_plugins can safely not include gconf, and gconf will 
remain loaded for the lifetime of compiz.

2: Update the ccsm gconf backend so that any updates to active_plugins 
will implicitly include gconf in the list (this made sense to me, since 
you wouldn't want to be configuring compiz via gconf without giving 
compiz the ability to actually respond to configuration events).

3: Update the gconf plugin itself to always include itself in the 
active_plugins list when requested, and it doesn't exist (this is more 
in line with option 1, but only modifies the gconf plugin).

What do you think? Perhaps some other approach altogether?


More information about the compiz mailing list