Sommaire Index Rechercher Liens A Propos
[LinuxFocus Image]
[Navegation Bar]
  Nouvelles   Archives

Configurer X:

A quoi servent tous ces fichiers avec des points ?

par Joel McCarty


Introduction

.xinitrc

.Xclients

.Xresources

Introduction

Ceci est destiné aux nouveaux administrateurs système et utilisateurs individuels qui se demandent comment obtenir une meilleure flexibilité dans le réglage de sessions X personnalisées pour eux même et leur utilisateurs.

Cet article assume que le Système X Windows est déjà installé et est démarré par la commande startx (la configuration de X pour plusieurs utilisateurs via XDM fera l'objet d'un autre article). Passons d'abord en revue les principaux fichiers que seront décris et résumons brièvement ce qu'ils font...

xinitrc
xinitrc est un script passé à xinit par la commande startx. Ce script définit habituellement des ressources globales (réglages de l'économiseur d'écran, définition du clavier, etc). C'est le fichier qui cimente tout le processus de démarrage de X.

Xclients
C'est un fichier (avec un point) situé dans le répertoire de l'utilisateur qui démarre des clients spécifiques à l'utilisateur à l'opposé de ceux appelés par xinitrc.

Xresources
C'est un fichier qui contient des définitions d'objets graphiques, des widgets, qui sont prioritaires sur ceux par défaut des applications. Ce fichier est habituellement utilisé pour préciser la taille des polices de caractère, les couleurs et l'aspect général mais il peut aussi être utilisé pour obtenir des effets graphiques spectaculaires.

Maintenant que nous connaissons les principaux fichiers concernés, voyons comment les configurer...

.xinitrc

Après avoir lancé la commande startx, xinint (qui est responsable du processus de démarrage de X) évalue soit /etc/X11/xinit/xinitrc (global), soit s'il existe, ~/.xinitrc (local). Si ni l'un ni l'autre n'existe, le choix de la configuration est fait par le processus xinit (à éviter). Le fichier xinitrc (le local est prioritaire sur le global) est un script qui démarre les différents clients X spécifiés et utilise ensuite exec pour lancer le gestionnaire de fenêtres.

Le plus simple des fichiers xinitrc ressemble à quelque chose comme ça...

        # /etc/X11/xinit/xinitrc
        #!/bin/sh
 
        exec /usr/X11R6/bin/fvwm2
Ce fichier ne fait rien d'autre que d'exécuter le gestionnaire de fenêtres FVWM2 sans aucun autre client. Pas très utile, mais pratique si vous voulez bricoler une configuration pour un nouveau gestionnaire de fenêtres en un éclair. Les choses deviennent plus intéressantes en ajoutant quelques réglages et le lancement de clients additionnels que nous voulons à chaque démarrage de X...
        #/etc/X11/xinit/xinitrc
        #!/bin/sh

        # régler ce problème pénible avec backspace     
        xmodmap -e "keycode 22=BackSpace"

        # définir   l'arrière plan
        xsetroot -solid LightSlateGrey

        # économiseur d'écran après cinq minutes
        xset s 300

        # clients  à démarrer systématiquement
        xterm -g 80x20+150+8 &        # lance un terminal
        xterm -g 80x20+150+325 &      # Lance une 2ième fenêtre sous la 1ère 
        xload -g +4+0 &               # lance un indicateur de charge cpu
        xclock -g +815+0 -digital &   # lance l'horloge digitale
        # Lance le gestionnaire de fenêtres
        exec fvwm2

Copie d'écran de la session X utilisant cette configuration

Nous avons maintenant un fichier qui règle le problème avec backspace (dans la plupart des cas), active le verrouillage numérique, élimine cet horrible arrière plan moiré et lance quelques programme à chaque démarrage de X.

Notez qu'un fichier local dans le répertoire de l'utilisateur sera toujours utilisé s'il existe (ignorant complètement les réglages système). Remarquez aussi l'option -g sur presque toutes les commandes. C'est l'option de géometrie qui est disponible pour beaucoup de programmes X. Quand elle est utilisée, cette option spécifie la taille et la position d'un programme sous la forme...

Longueur x Largeur + Coordonnée X + Coordonnée Y

La subtilité dans ce réglage, est que xterm (et la plupart des autres émulateurs de terminal) spécifient la longueur et la largeur en termes de caractères alors que les autres programmes utilisent les pixels pour ces valeurs (si vous ne faites pas attention, vous aurez des fenêtres plutôt petites !). Enfin, faites attention aux "&" ajoutés à la fin de toutes les commandes autres que celle qui lance le gestionnaire de fenêtres. Ces "&" ordonnent aux programmes de s'éxécuter en arrière plan (sinon la commande suivante, ne s'éxecuterait que si la précédente s'achève - ce qui n'est pas l'effet escompté). Ainsi, SEUL le gestionnaire de fenêtres est lancé en avant plan et entraîne avec lui tous les processus lancés avec xinitrc quand vous quittez X.

Nous avons maintenant un script assez fonctionnel qui peut être utilisé globalement ou copié dans les répertoires des utilisateurs si nous voulons personnaliser les clients pour des utilisateurs particuliers (par exemple nous pourrions écrire un script particulier de telle sorte que les utilisateurs d'un département d'études obtiennent une configuration X différente de celle de quelqu'un de la comptabilité). Bien qu'il y ait déjà ici des possibilités intéressantes, nous avons sous-utilisé beaucoup du potentiel. Remarquez, qu'il s'agit d'un script standard et que par conséquent, nous pouvons appeler n'importe quelle commande que nous utiliserions normalement et les faire éxecuter. Examinons maintenant un dernier exemple qui utilise xmodmap et xrdb pour concatener une configuration personnelle avec celle du fichier système xinitrc, nous libérant ainsi de la tâche de constitution d'un fichier xinitrc dans le répertoire des utilisateurs qui ont besoins d'options personnalisées (l'utilisation de Xclients et Xressources à des fins spécifiques est décrites ci-dessous):

        #/etc/X11/xinit/xinitrc
        #!/bin/sh

        # definition du chemin des ressources locales et globale
        userclients=$HOME/.Xclients
        userresources=$HOME/.Xresources
        usermodmap=$HOME/.Xmodmap
        sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
        sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

        # concaténer les  Xdefaults et tables clavier système et utilisateur
                if [ -f $sysresources ];  then xrdb -merge $sysresources; fi
                if [ -f $sysmodmap ];     then xmodmap $sysmodmap; fi
                if [ -f $userresources ]; then xrdb -merge $userresources; fi
                if [ -f $usermodmap ];    then xmodmap $usermodmap; fi

        # régler le problème  backspace     
        xmodmap -e "keycode 22=BackSpace"

        # Définir  l'arrière plan
        xsetroot -solid LightSlateGrey

        # économiser d'écran au bout de cinq minutes
        xset s 300

        # vérifier la présebce de ~/.Xclients et exécuter sinon executer le système 
        # clients par défaut ( local et global ne sont PAS mélangés)
                if [ -f $userclients ]; then 
                        exec $userclients
                else
 
                #lancer les clients par défaut
                xterm -g 80x20+150+8 &
                xterm -g 80x20+150+325 &
                xload -g +4+0 &
                xclock -g +815+0 -digital &
 
                 # Lance le gestionnaire de fenêtres
                fvwm2
 
                fi
 

Copie d'écran de la session X utilisant cette configuration

Nous avons d'abord chargé toutes les tables claviers système et les configurations par défaut des programmes (définies dans .Xmodmap et .Xresources) puis les réglages spécifiques à l'utilisateur (situés dans son propre répertoire). Ensuite, nous ajoutons les réglages additionnels même s'ils n'existent ni dans ceux du système ni dans ceux de l'utilisateur (par exemple la correction du backspace et le verrouillage du pavé numérique). Après, nous verifions si l'utilisateur à un Xclients dans son répertoire (et le chargeons s'il existe) sinon, nous lançons des réglages au niveau système (remarquez que contrairement aux défauts et ressources plus haut, ces deux lignes ne sont PAS concaténées). Il faut aussi mentionner le fait que si l'utilisateur n'a pas de Xclients dans son répertoire, sa configuation ressemblera à notre   copie d'écran originale  contrairement à  celle d'au dessus; par conséquent, nous avons la possibilité d'avoir simultanément un aspect général au niveau système et un environnement hautement personnalisé à partir du même xinitrc. Pour finir, nous vérifions la présence de notre (nos) gestionnaire(s) de fenêtres préferré(s) sinon, nous nous reposons sur le bon vieux fvwm2 par sécurité (s'il est inconnu, le système lancera twm en dernier recours). Nous disposons maintenant d'une configuration qui permet des réglages personnalisés pour l'ensemble des utilisateurs simplement en installant des fichiers locaux, ou bien d'une configuration au niveau du système en modifiant les fichiers système sans plus jamais toucher à nos scripts.

 Regardons quelques fichiers référencés dans les exemples précédents...

.Xclients

Le fichier ~/.Xclients contient des clients spécifiques à l'utilisateur qui doivent être exécutés au démarrage d'une session X. La syntaxe de ce fichier se conforme à celle des instructions comparables dans le fichier xinitrc. Le fichier ~/.Xclients ci-dessous est chargé par le xinitrc utilisé dans   la recopie d'écran précédente.

  

        xv -rmode -noresetroot -quit /usr/local/backgrounds/slate.xpm &
        kfm &
        kcontrol -init &
        kbgndwm &
        krootwm &
        kpanel &
        kvt &
        kwm
Comme vous pouvez le voir sur la recopie d'écran précédente, Xclients peut être utilisé pour présenter des environnements personnalisés tout en conservant un fichier xinitrc centralisé. Remarquez que dans le .xinitrc ci-dessus, aucun client n'est lancé si ~/.Xclients est present. J'utilise cette configuration afin que chaque utilisateur puisse démarrer son gestionnaire de fenêtres favoris avec Xclients. Si vous avez besoin de clients spécifiques au système chargés systématiquement, lancez les avant d'exécuter un Xclients utilisateur (si ~/.Xclients contient un appel à un gestionnaire de fenêtres). Pour ceux d'entre vous qui sont intéressés par la configuration de mon bureau présentée dans le dernier exemple, jeter un coup d'oeil au   site de KDE . La version 3.0 Beta vient juste de sortir et contient beaucoup d'outils très pratiques de configuration de l'interface graphique.
 
 

.Xresources

Les ressources dans X définissent des réglages pour les programmes locaux (~/.Xresources) ou globaux (/usr/X11R6/lib/X11/xinit/.Xresources). Les programmes X sont constitués de widgets. Ce sont des éléments de contrôle; il y en a donc pour les polices, les barres de défilement et l'arrière plan. Pratiquement tout dans un programme X est un widget (et donc paramètrable).

Les widgets sont habituellement hiérarchisés, par exemple, dans un cadre d'un menu il peut y avoir plusieurs widgets pour des boutons individuels. Pour exprimer complètement des changements pour un widget spécifique, il doit être exprimé sous la forme d'un chemin vers le composant individuel. Ce chemin est le nom du widget dans la hiérarchie. A titre d'exemple, voici ci-dessous des lignes de mon fichier ~/.Xdefaults qui standardise toutes mes fenêtres de terminaux.

XTerm*Font:             -misc-fixed-bold-r-normal-15-140-75-75-c-90-iso8859-1
XTerm*Background:       black
XTerm*Foreground:       cyan
XTerm*scrollBar:        true
XTerm*saveLines:        500
Xterm*VT100.geometry:   80x24
Remarquez que les joker sont autorisés, donc...

*Foreground: cyan
*Background: black

Définira un aspect standard pour tous les programmes qui n'ont pas de paramètres explicites dans Xdefault. Si, comme moi, vous voulez plus de flexibilité que les jokers, mais que vous avez du mal à vous souvenir de l'arborescence des widgets pour ménager votre santé...essayer editres! C'est un outils de configuration graphique intercatif qui vous permettra de générer des configurations extrèmement personnalisées sans avoir à écrire le moindre fichier Xdefaut. Consultez une   photo de editres en action  ! Vous devriez commencer maintenant à réaliser que Xdefaut offre des possibilités excitantes pour modifier l'aspect général tout comme pour personnaliser fortement des clients. Constatez ce que Xdefaut à fait à ce misérable  xcalc . Un guide pas à pas sur l'utilisation complète des possibilités d'editres est visibles sur la page des trucs X d'  Isolation.

Voilà, c'est à peu près tout pour ce mois ci. J'espère que maintenant vous voyez que X peut être aussi bien personnalisé que standardisé à volonté sans avoir à passer des heures à réécrire des scripts pour chaque nouvel utilisateur. Le prochain numéro (du moins c'est ce que souhaite l'éditeur   Miguel A .Sepulveda ) nous verrons comment avoir plusieurs comptes sur la même station avec le Gestionnaire d'affichage XDM. Si vous avez des questions ou des remarques, n'hésitez pas à   me contacter. D'ici la prochaine fois...
 


Traduit par John Perr


    Pour en savoir plus:

    • Lisez les pages du manuel (man pages) de xinit et X.


© 1998 Joel McCarty
Ce site web est maintenu par Miguel A Sepulveda.