docs.kde.org
Fichiers de configuration
Précédent
Suivant

Fichiers de configuration

KDE utilise un format de fichiers de type texte simple pour tous ses fichiers de configuration. Il se compose de paires clé-valeur qui sont placées dans des groupes. Tous les fichiers de configuration KDE font appel à l'encodage UTF-8 pour le texte en dehors de la plage ASCII.

Le début d'un groupe est indiqué par un nom de groupe qui est placé entre crochets. Tous les éléments clé-valeur qui suivent appartiennent au groupe. Le groupe se termine soit quand un autre groupe commence, soit quand la fin du fichier est atteinte. Les éléments situés au début du fichier qui ne sont pas précédés d'un nom de groupe appartiennent au groupe par défaut.

L'exemple suivant montre un fichier de configuration qui se compose de deux groupes. Le premier groupe contient les clés LargeCursor et SingleClick, tandis que le second groupe contient les clés Show hidden files et Sort by :

[KDE]
LargeCursor=false
SingleClick=true
[KFileDialog Settings]
Show hidden files=false
Sort by=Name

Les éléments d'un groupe se composent d'une clé et d'une valeur séparées par un signe égal. La clé peut contenir des espaces et être suivie d'options placées entre crochets. La partie après le signe égal est la valeur de l'élément. Tout blanc entourant le signe égal est ignoré, comme s'il s'agissait d'un espace de fin quelconque. En bref, le format est :

élément=valeur

Si une valeur est censée inclure un espace au début ou à la fin, il est possible de l'obtenir à l'aide d'une barre oblique inverse suivie d'un « s ».

Il y a plusieurs autres codes de barres obliques inverses. En voici une liste complète :

Dans l'exemple suivant, la valeur de l'élément Caption commence par deux espaces, tandis que l'élément Description contient trois lignes de texte. Les sauts de ligne en notation barre oblique inverse sont utilisés pour séparer les différentes lignes.

[Preview Image]
Caption=\s Ma légende
Description=Ceci est\nune très longue\ndescription.

Les lignes vides dans les fichiers de configuration sont ignorées, puisque ce sont des lignes qui commencent par un caractère dièse (« # »). Le caractère dièse peut être utilisé pour ajouter des commentaires aux fichiers de configuration. On notera que quand une application KDE met à jour un fichier de configuration, les commentaires ne sont pas préservés.

Il peut y avoir de multiples fichiers de configuration du même nom dans le sous-dossier share/config des diverses arborescences de dossiers KDE. Dans ce cas, les informations de tous ces fichiers de configuration sont combinées selon un principe clé par clé. Si la même clé au sein d'un groupe donné est définie dans plusieurs endroits, la valeur clé lue depuis l'arborescence des dossiers ayant la priorité la plus élevée sera utilisée. Les fichiers de configuration sous $KDEHOME ont toujours la priorité la plus élevée. Si une clé dans un groupe donné est définie plusieurs fois dans un seul fichier, la valeur du dernier élément est utilisée.

Si $HOME/.kde/share/config/foobar contient :

[MyGroup]
Color=red
Shape=circle

et si /etc/opt/kde3/share/config/foobar contient

[MyGroup]
Color=blue
Position=10,10

, le résultat sera :

[MyGroup]
Color=red
Shape=circle
Position=10,10

Si $HOME/.kde/share/config/foobar contient

[MyGroup]
Color=red
Shape=circle
[MyGroup]
Color=green

et si /opt/kde_staff/share/config/foobar contient

[MyGroup]
Color=purple
Position=20,20

et si /etc/opt/kde3/share/config/foobar contient

[MyGroup]
Color=blue
Position=10,10

, le résultat sera :

[MyGroup]
Color=green
Shape=circle
Position=20,20

Pour empêcher les utilisateurs de pouvoir annuler les réglages par défaut, il est possible de marquer ces réglages comme immuables. On peut rendre les réglages immuables individuellement, par groupe ou par fichier. Un élément individuel peut être verrouillé en ajoutant [$i] à côté de la clé, par exemple :

Color[$i]=blue

On peut verrouiller un groupe d'éléments en plaçant [$i] à côté du nom du groupe, par exemple :

[MyGroup][$i]

Pour verrouiller le fichier entier, commencez-le par [$i] sur une seule ligne, c'est-à-dire :

[$i]

Si $HOME/.kde/share/config/foobar contient :

[MyGroup]
Color=red
Shape=circle

et si /etc/opt/kde3/share/config/foobar contient :

[MyGroup][$i]
Color=blue
Position=10,10

, le résultat sera :

[MyGroup]
Color=blue
Position=10,10

Si $HOME/.kde/share/config/foobar contient :

[MyGroup]
Color=red
Shape=circle

et si /opt/kde_staff/share/config/foobar contient

[MyGroup]
Color=purple
Shape=rectangle

et si /etc/opt/kde3/share/config/foobar contient

[MyGroup][$i]
Color=blue
Position=10,10

le résultat sera

[MyGroup]
Color=purple
Shape=rectangle
Position=10,10

On peut faire intervenir ce qu'on appelle l'« expansion du shell » pour fournir plus de valeurs par défaut dynamiques. Avec l'expansion du shell, la valeur d'une clé de configuration peut être construite à partir de la valeur d'une variable d'environnement ou de la sortie d'une commande shell. Pour activer l'expansion du shell pour un élément de configuration, la clé doit être suivie de [$e]. Normalement, la forme étendue est écrite dans le fichier de configuration de l'utilisateur après la première utilisation. Pour empêcher cela, il est recommandé de verrouiller l'élément de configuration à l'aide de [$ie]. L'utilisateur ne peut évidemment pas le changer ensuite.

Dans l'exemple suivant, la valeur de l'élément Host est déterminée par la sortie du programme hostname Ce paramètre est également verrouillé pour garantir que la valeur est toujours déterminée dynamiquement.

La valeur concernant l'élément Email est déterminée en remplissant les valeurs des variables d'environnement $USER et $HOST. Quand joseph est connecté sur joseph_host, on obtient une valeur égale à joseph@joseph_host. Le paramètre n'est pas verrouillé.

[Mail Settings] 
Host[$ie]=$(hostname)
Email[$e]=${USER}@${HOST}

La plupart des éléments de configuration peuvent être indexés avec un code de langue. Dans ce cas, la langue que l'utilisateur a choisie sur le bureau sert à rechercher la valeur de la clé. Si l'on a choisi la langue par défaut (anglais américain) ou s'il n'a pas d'index qui correspond à la langue choisie, l'élément clé sans index est utilisé.

Dans l'exemple suivant, la valeur de l'élément Caption dépend de la langue. Si l'utilisateur a choisi le français (code de langue fr), la valeur de l'élément sera « Ma légende ». Dans tous les autres cas, la valeur « My Caption » sera utilisée.

[Preview Image]
Caption=My Caption
Caption[fr]=Ma légende

Dans cet exemple, la valeur de l'élément Caption dépend de la langue. Si l'utilisateur a choisi le français (code de langue fr), la valeur de l'élément sera « Ma légende ». Dans tous les autres cas, la valeur « My Caption » sera utilisée.

[Preview Image]
Caption=My Caption
Caption[fr]=Ma légende

En général, les éléments susceptibles d'apparaître dans un fichier de configuration ne sont pas documentés. KDE 3.2 a permis de commencer à changer cet état de choses. Dans $KDEDIR/share/config.kcfg, se trouvent des fichiers qui fournissent une description formelle des éléments possibles dans un fichier de configuration. Le nouvel éditeur de configuration KDE s'en sert quand ils sont disponibles.

Voici un exemple de fichier de configuration XML :


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
<kcfg>
    <kcfgfile name="korganizerrc"/>
    <group name="General">
         <entry type="Bool" key="Auto Save">
             <label>Enable automatic saving of calendar</label>
             <default>true</default>
         </entry>
         <entry type="Int" key="Auto Save Interval">
             <default>10</default>
         </entry>
    </group>
</kcfg>

Il a le même effet que :

[General]
Auto Save=false
Auto Save Interval=25

Précédent
Suivant
Sommaire


docs.kde.org