- GConf
GConf is a system used by the
GNOME desktop environment for storing configuration settings for the desktop and applications.Changes to this system are controlled by GConfd, a daemon. GConfd watches out for changes to thedatabase , and when they are changed, it applies the new settings to applications using it. This technology is known as "auto-apply", compared to "explicit-apply", which requires users to press an OK or Apply button to make changes come into effect. The term "instant-apply" is sometimes used, compared to plain "apply".The GConf database by default uses a system of directories and
XML files, stored in a directory called~/.gconf
. GConf can also use other backends, such as a database server, but XML file storage is the most common configuration.The application
Gconf-editor is provided to allow users to change settings manually, but it is not usually used forend user preferences. These should be provided by the application, but hasn't in some cases, causing upset among users. (see maingconf-editor article for details)Architecture
GConf is currently based on the C implementation of
CORBA namedORBit . Its architecture consists of a session daemon that initializes various sources of configurationschema s on user login. Each source is based on a specificbackend that translates the key and value pairs that compose the configurationdatabase ; the default backend is based onXML . At this time, this is the only working backend for GConf, although an LDAP backend existed in embryonic form. Each source can also be set to read-only, in order to create a default basic configuration, e.g. in a corporate network.The values inside the GConf database are indexed using a path string in the form of
/path/to/application/key
.The proper way to access the GConf database held by the GConf daemon is to use the
GConfClient GObject -based class.Changes notification
When writing an application that uses GConf, one should never directly poll the database. Instead, one should attach a callback to a given key, thus using a
Model-view-controller paradigm. Each time an application changes the value bound to a specific key, the notification callbacks will be invoked.Schemas
An application using GConf should provide a description for each key it creates inside the GConf database. This configuration meta-data is also stored inside the configuration database, and is called a "schema"; it could contain a (possibly localized) descriptive text, the valid type of the value bound to a key, and a default value.
Bindings
Like many libraries in the
GNOME platform, GConf can be accessed using various programming languages, such asC,C++ ,Perl , Java and Python.External links
* [http://www.gnome.org/projects/gconf/index.html GConf Project Page]
* [http://developer.gnome.org/doc/API/gconf Official GConf Manual]
* [http://www.gnome.org/projects/gconf/plans.html Future GConf Plans]
* [http://gtk2-perl.sourceforge.net/doc/pod/Gnome2/GConf.html Gnome2::GConf Perl Module]
Wikimedia Foundation. 2010.