10.5. Paramétrage des applications et ressources X

Du fait que toutes les applications X font appel au serveur X pour effectuer leur affichage, et au gestionnaire de fenêtres pour définir l'apparence et la disposition de leurs fenêtres, elles sont soumises aux options générales de ces deux programmes. Elles peuvent cependant être paramétrées elles-aussi, et leur comportement peut être personnalisé à souhait par chaque utilisateur.

Pour cela, XWindow fournit un mécanisme standard pour toutes les applications, afin qu'elles puissent gérer leurs options de configuration de manière uniforme. Ce mécanisme se base sur des paramètres gérés par le serveur X, que l'on appelle des ressources X. La plupart des applications utilisent ces ressources pour stocker leurs paramètres de configuration, et le fait que ce soit le serveur X qui centralise leur gestion assure une certaine cohérence entre les applications. En général, les ressources X décrivent essentiellement les aspects visuels des applications, comme par exemple les polices de caractères utilisées, les couleurs et l'épaisseur des traits. Cependant, les applications peuvent parfaitement utiliser les ressources pour enregistrer des paramètres qui leurs sont propres. Le serveur X n'interprète en aucune manière les ressources utilisées par les applications, il ne fait que les mettre à disposition des applications.

Le serveur X gère les ressources dans une base de données qui est initialisée lors de son démarrage : la « X Ressource DataBase » (« xrdb » en abrégé). Cette base de données est initialisée lors du démarrage du serveur à partir de fichiers de configuration au format texte, que l'on peut donc éditer et modifier aisément. Le serveur X utilise deux jeux de fichiers lors de son initialisation : les fichiers de configuration par défaut des applications d'une part, et le fichier de préférences personnelles de chaque utilisateur d'autre part. Les fichiers de configuration des applications sont normalement placés dans le répertoire /usr/X11R6/lib/X11/app-defaults/. Les applications y copient leurs propres fichiers lors de leur installation. Le nom de chaque fichier correspond au nom de l'application à laquelle il appartient, ce qui permet de retrouver aisément le fichier de configuration d'une application donnée. Le fichier de préférences personnelles de chaque utilisateur, quant à lui, se place dans son répertoire racine et porte le nom .Xresources.

Les fichiers de ressources des applications sont lus en premier, en général dans les scripts d'initialisation de XWindow. En revanche, le fichier de préférences personnelles d'un utilisateur n'est lu que lors de l'ouverture d'une session X par cet utilisateur. Lorsqu'une ressource présente dans le fichier de configuration par défaut d'une application est redéfinie dans le fichier de préférences personnelles d'un utilisateur, la valeur utilisée est bien entendue celle de l'utilisateur. Ainsi, chacun peut redéfinir les valeurs par défaut des ressources de toutes les applications qu'il utilise. La plupart des applications peuvent également prendre des options en paramètres de ligne de commande, qui permettent de fixer les valeurs de certaines ressources. Ces options prévalent sur les valeurs définies dans les fichiers de configuration des applications et de préférences personnelles des utilisateurs.

Vous pourrez vous inspirer du contenu des fichiers de configuration des applications pour paramétrer vos applications. Pour cela, il vous suffira simplement de recopier les définitions des ressources qui vous intéressent dans votre fichier .Xresources, et de tester le résultat avec différentes valeurs. L'affectation d'une valeur à une ressource se fait avec la syntaxe suivante :

ressource    : valeur
ressource est le nom de la ressource, et valeur est la valeur à lui affecter.

Les noms de ressources sont structurés de manière hiérarchique. Ils sont en effet constitués d'un certain nombre de composantes séparées par des points (caractère '.'). La première composante qualifie l'application elle-même, et porte son nom. Il est d'usage de mettre la première lettre de ce nom en majuscule, et si cette lettre est un 'X', de mettre également la deuxième lettre du nom en majuscule (beaucoup d'applications X ont en effet un nom commençant par un 'X'). Les composantes suivantes définissent un sous-ensemble de paramètres apparentés dans l'ensemble des paramètres déterminé par les composantes précédentes. Enfin, la dernière composante du nom de ressource constitue le nom du paramètre lui-même.

Par exemple, le nom de ressource suivant :

XApplication.mainWindow.background

qualifie la couleur d'arrière plan (propriété « background ») de la fenêtre principale (propriété « mainWindow ») de l'application « XApplication ». Notez que les deux premières lettres du nom de la ressource sont en majuscules ici, car la première lettre du nom de l'application est elle-même un 'X' majuscule.

Note : Les fichiers de ressources utilisent des noms de couleurs prédéfinies pour définir les couleurs des différentes parties des applications. Vous pourrez trouver la liste de ces noms de couleurs ainsi que leurs définitions dans le fichier /usr/X11R6/lib/X11/rgb.txt. Vous pouvez également définir vos propres couleurs avec la syntaxe « rgb:R/V/B », où « R » représente la portion de rouge de la couleur, « V » représente la portion de vert, et « B » la portion de bleu.

Ainsi, l'ensemble des paramètres des applications X est organisé un peu comme sont organisés les fichiers dans une arborescence de répertoires. L'analogie ne s'arrête pas là : il est possible de caractériser un ensemble de ressources grâce à des caractères génériques. Par exemple, en utilisant une étoile (caractère '*') comme séparateur à la place du point dans un nom de ressource, toutes les ressources dont le nom comprend les deux composantes seront sélectionnées, que ces deux composantes soient adjacentes ou séparées d'autres composantes intermédiaires. Par exemple, le nom de ressource suivant :

XApplication*background

qualifie la couleur d'arrière plan de toutes les fenêtres de l'application « Xapplication ».

De même, le caractère générique point d'interrogation (caractère '?') permet de remplacer une composante par un nom quelconque. Le nom de ressource suivant :

XApplication.?.background

représente donc toutes les ressources comportant les composantes « XApplication » et « background », séparées par une composante de nom quelconque.

La structure des noms de ressources d'une application n'est pas due au hasard. Les paramètres sont regroupés soit par fonctionnalité, soit par thème, soit par appartenance à la même partie de l'application. En général, les noms de ressources utilisés par les applications sont simples à comprendre. Vous trouverez des exemples de noms de ressources dans les fichiers de ressources des applications.

Vous pouvez obtenir la liste exhaustive des ressources d'une application avec l'utilitaire appres. En fait, cet utilitaire permet d'obtenir la liste des noms des ressources appartenant à une branche de l'arborescence des ressources. Cet utilitaire s'utilise selon la syntaxe suivante :

appres branche
branche est le nom de la branche que l'on veut explorer.

Comme la base de données des ressources est initialisée au démarrage du serveur X et à l'ouverture de la session X, les modifications que vous pourrez apporter à votre fichier de ressources personnelles ne seront pas prises en compte immédiatement. Pour cela, vous devez demander la relecture de la base de données explicitement et relancer les applications concernées. Cette opération peut être effectuée à l'aide de l'outil xrdb (abréviation de l'anglais « X ressource DataBase »). En fait, cet outil permet d'effectuer diverses opérations sur la base de données des ressources.

L'option -merge est certainement celle que vous utiliserez le plus. Elle permet de mettre à jour les valeurs des ressources avec celles décrites dans un fichier. La syntaxe utilisée est la suivante :

xrdb -merge fichier
fichier est le nom du fichier contenant la définition des ressources (généralement, il s'agit de votre fichier .Xresources).

L'option -load permet d'effectuer le même travail, mais la base de données est vidée au préalable. Cette option permet donc de réinitialiser complètement le contenu de la base de données avec le contenu du fichier passé en paramètre. Sa syntaxe est la même que celle de l'option -merge.

L'option -remove permet de vider la base de données et de supprimer toutes les ressources que vous auriez pu définir au préalable. Elle s'utilise selon la syntaxe suivante :

xrdb -remove

Enfin, l'option -query permet de lister l'ensemble des ressources existantes.