[compiz] Include option type in gconf schema

Mike Dransfield mike at blueroot.co.uk
Mon Nov 13 06:09:41 PST 2006


>
> I would prefer not to use dbus because if anyone turns the plugin off 
> (or it fails) then the user will not be able to change the 
> configuration to change it back. However if dbus is the only option, 
> mike could you possibly give me an example of how I would retrieve the 
> key type using your code. Thanks

Dbus is the least prone to problems and also it means that
there are less places where code needs to be changed
if anything is updated.  For you as a configuration app
writer it means that anybody will be able to use your app
irregardless of which config backend they use (it is likely a
kconfig backend will be developed in the future).

As far as I can tell the only other solution would be to
write a libcompizsettings and then link to it with your app.
The problem with this solution is that it creates many
places where code has to be changed if (for example) an
edgeButton is added to the action.  This leads to bugs.

I would not worry too much about dbus not working or not
being enabled.  From what I gather, dbus will be THE
IPC mechanism for the next generation desktop.  If dbus is
not working then a lot of other things will probably not
work either.  Dbus is replacing DCOP for KDE and AFAIK
Gnome is supporting it too.  Anyone who doesnt have dbus
enabled for whatever reason, can still use gconf-editor.

Here is a command which will get the available options for
a plugin (in this case, the allscreens options from rotate).
You can change allscreens for screen0 to get the screen
options.  These are shell bindings, you will have to see how
to do it with your language.

dbus-send --print-reply --type=method_call \
--dest=org.freedesktop.compiz  \
/org/freedesktop/compiz/rotate/allscreens \
org.freedesktop.compiz.getOptions

To get the meta data for an option use this command

dbus-send --print-reply --type=method_call \
--dest=org.freedesktop.compiz  \
/org/freedesktop/compiz/rotate/allscreens/flip_time \
org.freedesktop.compiz.getOptionMetadata

Change rotate/allscreens/flip_time for the option you
are interested in.

This function returns these items in order, short desc,
long desc, (compiz) datatype.  If the item is a numeric
value then the min max and precision (for float) are
returned.  If it is a string then the possible values are
returned.  Have a play and let me know if it could be
improved from your point of view.

Remember you can also get and set option values by
using the get/set methods as shown in the dbus
source.

Do not do too much based on these patches, they are
unfinished and probably buggy as hell, but they give
you some indication of how things will work in the
future.



More information about the compiz mailing list