Fedora Core 7 - Compiz vs Beryl

Peter Gordon peter at thecodergeek.com
Fri Jan 5 19:08:36 UTC 2007


On Fri, 2007-01-05 at 09:02 -0800, alan wrote:
> On Fri, 5 Jan 2007, Peter Gordon wrote:
> > On Thu, 2007-01-04 at 21:20 -0700, Trever L. Adams wrote:
> >> And as of the last version, compiz had a horrid configuration (read
> >> almost none) for the different plugins, etc.
>
> Saying it is in gconf is like saying to a Windows user that "You can just 
> make changes in the registry to configure it".  It is a non-obvious 
> configuration option.

It may be non-obvious, but it is there; and it allows you to change
virtually any aspect of Compiz's behaviour and/or appearance.  This is
hardly "almost none" as you had stated.

> I am not certain why gconf is a "better" solution.

From a corporate administrative stand point it has things like lock-down
and standard profile capabilities. From the standpoint of a user, it
also means that the preferences are applied immediately (yay for
inotify!) and for developers means that the information-manipulating
code is already written; i.e., one does not need to write code to parse,
read, and write file foo.cfg for various aspects and can instead simply
call the various GConf library functions to read or write data in
various configuration parameters. It also makes for having such code be
reusable by virtually any application that needs to store configuration
data. This is called encapsulation and abstraction; and it is nearly
always a very good segment of one's program design.

For example:
Beryl might (I haven't checked the code) do a configuration algorithm
such as:
     1. Create a file descriptor and map it to the file
        ~/.config/beryl/user.cfg, opened in read-only text mode
     2. Read the file contents and parse them into a configuration
        storage structure
     3. Poll the config file every so often for changes and re-read them
        into that structure if there are any
     4. Call wrapper functions on that structure to retrieve specific
        data pieces as needed

Whereas with GConf it's theoretically quite a bit simpler:
     1. Call gconf_client_add_dir and gconf_client_notify_add to
        register a callback function for when the configuration is
        changed.
     2. Call gconf_client_get or other gconf functions as needed to
        retrieve a specific key
     3. That's it :)

Also, the GConf on-disk structure is XML, which makes it much better
suited for automated manipulation tools.

> It makes moving users 
> from one version to another difficult.  (More than once, I have had all 
> the configuration data tied up in the gconf blob.  Not easy to say "pull 
> all the configuation for app x".)

Actually it is. The tree of gconf keys should contain a /apps/app-name/
subtree that you can pull with a simple cp or mv (the
~/.gconf/apps/app-name/ directory on-disk).

> Compiz themes are different from Metacity themes.  They just added to 
> them.

Right, but work is underway in Compiz to have both it and Metacity use
the same theming/rendering infrastructure, as I've read on various
Planets. Does Beryl have similar intention of desktop integration?

> I do know that I have been able to get Beryl to work consistantly. With 
> Compiz, I am lucky to get the window decorations to come up most of the 
> time.

The fact that something works and whether or not it is functioning and
designed properly are two entirely separate things. ;)
-- 
Peter Gordon (codergeek42)
GnuPG Public Key ID: 0xFFC19479 / Fingerprint:
  DD68 A414 56BD 6368 D957 9666 4268 CB7A FFC1 9479
My Blog: http://thecodergeek.com/blog/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20070105/6a978234/attachment.sig>


More information about the fedora-devel-list mailing list