GSettings

Depuis Gnome 3, le stockage de la configuration d'une application se fait par l'intermédiaire de GSettings, une API « agnostique » dont l'utilisation dans un plugin Gedit ou une extension Gnome-shell pose de petits problèmes car elle nécessite les droits administrateurs. Voici quelques pistes pour l'utiliser « en local ».

L'enregistrement de la configuration d'une application est un principe simple qui consiste à stocker une série de couples clé/valeur, soit le nom d'une propriété de configuration et sa valeur. L'utilisateur retrouve ensuite ces valeurs à chaque fois qu'il lance l'application.

Gnome 2 et GConf

Sous Gnome 2, le stockage des informations de configuration se faisait avec GConf. Son utilisation était dés plus simple :

# Importer gconf
import gconf

# Chemin de stockage de la configuration 
# d'une application 'myapp'
GCONF_DIR = '/apps/myapp/'

# Récupérer la valeur de 'foo': 'bar'
value = gconf.client_get_default().get_string(GCONF_DIR + 'foo')

# Assigner une nouvelle valeur à 'foo': 'baz'
gconf.client_get_default().set_string(GCONF_DIR + 'foo', 'baz')
Exemple d'utilisation de GConf en python.

Gnome 3 et DConf - GSettings

Avec Gnome 3, les choses se complexifient un (tout) petit peu. D'abord parce que GConf est remplacé par Dconf ; ensuite parce que les applications n'interagissent plus directement avec l'outil de stockage mais avec GSettings, une API générique qui est chargée d'aller dialoguer avec DConf(1).

L'avantage de cette technique est évident : en utilisant GSettings, on reste indépendant de la manière dont les données vont être stockées. Si le projet Gnome décide un jour d'abandonner DConf pour utiliser un autre système de stockage, le changement sera transparent.

Utilisation de GSettings

  1. Utiliser un schéma GSettings
  2. API de GSettings
  3. Ecran de configuration avec GSettings

Ressources et références

GIO Reference Manual. Gnome Dev Center. GSettings

GIO Reference Manual. Gnome Dev Center. Running GIO applications

BASTIAN, Waldo ; LORTIE, Ryan ; POETTERING, Lennart. XDG Base Directory Specification. freedesktop.org

GConf Reference Manual. Gnome Dev Center

CARRICK, Micah. Using GSettings with Python/PyGObject. micahcarrick.com,

Extensions. Gnome Live, . Extension Preferences