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...
|