GConf

Last updated
GConf
Developer(s) Havoc Pennington
Final release
3.2.6 / January 22, 2013;11 years ago (2013-01-22)
Repository
Written in C
Type Configuration
License GNU Lesser General Public License
Website projects.gnome.org/gconf   OOjs UI icon edit-ltr-progressive.svg

GConf was a system used by the GNOME desktop environment for storing configuration settings for the desktop and applications. It is similar to the Windows Registry.

Contents

It was deprecated as part of the GNOME 3 transition. Migration to its replacement, GSettings and dconf, is ongoing. [1]

Changes to this system are controlled by GConfd, a daemon. GConfd watches out for changes to the database, 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 normally used for end-user preferences.

Architecture

GConf is currently based on the C implementation of CORBA named ORBit. Its architecture consists of a session daemon that initializes various sources of configuration schemas on user login. Each source is based on a specific backend that translates the key and value pairs that compose the configuration database; the default backend is based on XML. 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 (MVC) 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 as C, C++, Perl, Java, C#, VB.NET and Python.

Related Research Articles

<span class="mw-page-title-main">OpenLDAP</span>

OpenLDAP is a free, open-source implementation of the Lightweight Directory Access Protocol (LDAP) developed by the OpenLDAP Project. It is released under its own BSD-style license called the OpenLDAP Public License.

<span class="mw-page-title-main">CUPS</span> Computer printing system

CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

<span class="mw-page-title-main">Configuration file</span> Software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

gconf-editor

Gconf-editor is a discontinued utility for the GNOME desktop environment used to maintain the old and now discontinued GNOME registry gconf.

<span class="mw-page-title-main">PyQt</span> Python GUI library

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various kinds of UNIX, including Linux and MacOS.

<span class="mw-page-title-main">Windows Registry</span> Database for Microsoft Windows

The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and user interfaces can all use the registry. The registry also allows access to counters for profiling system performance.

An INI file is a configuration file for computer software that consists of a text-based content with a structure and syntax comprising key–value pairs for properties, and sections that organize the properties. The name of these configuration files comes from the filename extension INI, for initialization, used in the MS-DOS operating system which popularized this method of software configuration. The format has become an informal standard in many contexts of configuration, but many applications on other operating systems use different file name extensions, such as conf and cfg.

<span class="mw-page-title-main">NetworkManager</span> Software

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.

<span class="mw-page-title-main">GNOME Keyring</span>

GNOME Keyring is a software application designed to store security credentials such as usernames, passwords, and keys, together with a small amount of relevant metadata. The sensitive data is encrypted and stored in a keyring file in the user's home directory. The default keyring uses the login password for encryption, so users don't need to remember another password.

BOND(Building Object Network Databases) started development in late 2000 as a rapid application development tool for the GNOME Desktop by Treshna Enterprises. Its aim was to fill a gap that traditional Microsoft Windows applications like Borland Delphi, Microsoft Access and Visual Basic filled on the Windows desktop, but targeted for the Linux environment. Its goal was to allow developers to quickly build database forms in XML for backend SQL databases. It has been employed extensively by Treshna Enterprises to develop applications such as PayMaster and GymMaster.

<span class="mw-page-title-main">Dreamlinux</span>

Dreamlinux was a Brazilian computer operating system based on Debian Linux. It can boot as a live CD, from USB flash drive, or can be installed on a hard drive. The distribution's GUI aims to have a centered animated toolbar. As of October 2012, The Dreamlinux Project has been discontinued.

Roundup is an open-source issue or bug tracking system featuring a command-line, web and e-mail interface. It is written in Python and designed to be highly customizable.

Clutter is a discontinued GObject-based graphics library for creating hardware-accelerated user interfaces. Clutter is an OpenGL-based 'interactive canvas' library and does not contain any graphical control elements. It relies upon OpenGL (1.4+) or OpenGL ES for rendering,. It also supports media playback using GStreamer and 2D graphics rendering using Cairo.

In computer science, marshalling or marshaling is the process of transforming the memory representation of an object into a data format suitable for storage or transmission, especially between different runtimes. It is typically used when data must be moved between different parts of a computer program or from one program to another.

GVfs is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically used by applications using the APIs of libgio. There is also FUSE support that allows applications not using GIO to access the GVfs filesystems.

<span class="mw-page-title-main">GNOME 3</span> Third major release of GNOME

GNOME 3 is the third major release of the GNOME desktop environment. A major departure from technologies implemented by its predecessors, GNOME 3 introduced a dramatically different user interface. It was the first GNOME release to utilize a unified graphical shell known as GNOME Shell. It also introduced support for the Wayland display protocol and added integration with other key technologies such as Flatpak during its development lifecycle.

The following outline is provided as an overview of and topical guide to the Perl programming language:

dconf Low-level configuration system for GNOME

dconf is a low-level configuration system and settings management tool. Its main purpose is to provide a back end to GSettings on platforms that don't already have configuration storage systems. It depends on GLib. It is part of GNOME as of version 3, and is a replacement for GConf.

firewalld is a firewall management tool for Linux operating systems. It provides firewall features by acting as a front-end for the Linux kernel's netfilter framework. firewalld's current default backend is nftables. Prior to v0.6.0, iptables was the default backend. Through its abstractions, firewalld acts as an alternative to nft and iptables command line programs. The name firewalld adheres to the Unix convention of naming system daemons by appending the letter "d".

Gyroscope is an open source PHP framework and a code template system for building web backend systems. Gyroscope uses a specific and yet flexible user interaction model to reveal and explore the inner-relations of a database.

References

  1. "GNOME Goal: Gconf to GSettings migration". GNOME. Retrieved 2014-11-05.