[compiz] configuration updates

2007-08-17 Thread David Reveman
I just pushed out a large set of configuration updates that I've been
working on for the last couple of days.

A major difference from before is that the action options have now been
slit up into key, button, edge and bell options. Action options still
exist but they can only be triggered through dbus or a similar
mechanism.

It's very convenient to have every option type easily represented as a
string and that's now the case. If multiple primitive options are
supposed to be represented as one large option, the metadata should be
used to achieve that.

One benefit is that it simplifies the configuration system a lot and
once this was done I was able to quickly implement a proper kconfig
backend plugin (I'll follow up with another mail regarding this
shortly).  I've also re-written large parts of the gconf plugin and it's
now in a much better state than before.

Any plugin that uses action options will need to be updated but the
changes that need to be made are simple. Each action option needs to be
split up into a key, button, edge and bell option. However, you should
only add the ones that makes sense. E.g. if the option is only supposed
to be triggered using a key-binding, don't add the other options.

I've already updated the core and all plugins in the fdo repository.
Look at these changes to see how to best update other plugins.

By adding the _key suffix to key actions, _button suffix to button
actions etc you'll avoid breaking configuration tools as the gconf
plugin was exposing the old action options like this before anyhow.

I haven't added key, button, edge and bell options for all old action
option. Mostly just the key option but it's trivial to add the other
ones so just let me know if you for example want a button or edge option
for an action that is only exposed as a key option and I'll add it
quickly.

Configuration backends need to be updated as well but the changes there
are also simple, mostly about removing old complex action option
handling code.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


[compiz] kconfig plugin

2007-08-17 Thread David Reveman
I've added a kconfig plugin and all kde based configuration tools should
rely on it. A file watch plugin like the inotify plugin will have to be
loaded for configuration changes to be picked up by the kconfig plugin
at run-time.

kcfg files are generated from the metadata and they can be used to
generate C++ source code that will provide an API for applications to
access all compiz configuration data.

As an example of how easy it now is to create a kde config tool for
compiz, I've attached a tarball with a simple xslt style-sheet, a
makefile and 20 lines of C++ code that will create a configuration
dialog that can be used to configure all compiz options in the core and
the plugins specified in the makefile.

The xslt style-sheet that is used to generate UI descriptions can be
improved a lot by someone who's interested. As far as configure-it-all
kind of tools goes, I think this auto-generated zero maintain cost
example is the best solution.

Much more interesting would be if someone would write a real kcontrol
module that integrate properly with the kde desktop. E.g. doesn't
present options that are already available in some other kcontrol
module, only expose options that a majority of users are actually
interested in and have the same look and feel as the rest of the
kcontrol modules.

-David


example.tar.bz2
Description: application/bzip-compressed-tar
___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz