Chapitre 14. X

Table des matières
14.1. Qu'est-ce que X?
14.2. Configuration
14.3. La souris
14.4. Le clavier
14.5. L'écran
14.6. Carte vidéo et serveur X
14.7. Démarrer X
14.8. Personnaliser X
14.9. Autres gestionnaires de fenêtres
14.10. Connexion graphique avec xdm

14.1. Qu'est-ce que X?

Le Système X Window est un environnement graphique existant sur NetBSD et de nombreux systèmes Unix (et non Unix). En fait, c'est même plus que ça : grâce à l'utilisation des protocoles X, le Système X Window est "réseau-transparent" et peut faire tourner des applications distribuées (client-serveur). C'est à dire, en gros, que vous pouvez faire tourner des applications sur un hôte (client) et afficher, de manière transparente, le graphique sur un autre hôte (serveur). De manière transparente signifie que vous n'avez pas besoin de modifier l'application pour arriver à ce résultat. Le Système X Window est produit et maintenu par le Consortium X et la version actuelle est X11R6. La mouture X présente avec NetBSD est XFree86, une implémentation open source librement distribuable du Système X Window.

Dans vos débuts avec X, vous trouverez de nombreux termes qui vous paraîtrons certainement confus. Les éléments de base pour utiliser X sont :

En résumé : pour utiliser l'environnement graphique, il vous faut :

Note : il doit rester clair que les bureaux tels que GNOME et KDE ne fournissent aucun serveur X. Ils tournent par dessus un serveur X existant géré par XFree86. GNOME et KDE peuvent utiliser leur propre gestionnaire de fenêtres ou un déjà installé.

Normalement, vous ne pouvez lancer qu'un seul gestionnaire de fenêtres sur un serveur X donné (mais vous pouvez faire tourner plusieurs serveur X sur la même machine). Si vous n'avez pas votre propre gestionnaire de fenêtres et que vous lancez GNOME ou KDE, ces derniers en choisirons un pour vous.

14.2. Configuration

Si vous n'avez pas choisi la configuration minimale pendant l'installation, X est présent sur votre ordinateur, dans son incarnation XFree86, prêt à fonctionner. La seule chose à faire est de créer le menaçant fichier /etc/XF86Config. Pour avoir une idée de ce à quoi il ressemble, regardez le fichier /usr/X11R6/lib/X11/XF86Config.eg. La structure du fichier de configuration est expliquée dans les pages de manuel XF86Config(4 et 5) qui peuvent être consultées avec la commande :

# man XF86Config    

Avant de configurer le système, il serait avisé de consulter soigneusement la documentation du répertoire /usr/X11R6/lib/X11/doc : il existe de nombreux " README"  sur les cartes vidéo, les souris et certains sont même spécifiques à NetBSD (README.NetBSD). Je vous suggère de commencer par lire QuickStart.doc. Vous aurez sans doute le sentiment que d'autres systèmes vous permettent de démarrer plus rapidement et sans efforts mais le temps passé à lire la documentation n'est jamais perdu : la connaissance de X et de votre configuration que vous allez acquérir se révélera très utile dans de nombreuses futures occasions et vous pourrez tirer le meilleur parti de votre matériel (et de vos logiciels).

Vous pouvez créer le fichier /etc/XF86Config manuellement avec un éditeur ou bien le générer automatiquement avec un programme interactif. Les meilleurs programmes connus sont xf86config et XF86Setup. Le premier est en mode texte et est installé avec le système de base, le deuxième est graphique et doit être installé avec la collection de paquetages.

Une solution mixte est sans doute une bonne approche : tout d'abord créer XF86Config avec l'un des deux programmes puis vérifier et affiner le fichier avec un éditeur.

L'interface des programmes est différente mais ils ont tout les deux besoin des mêmes informations :

Avant de configurer le système, récupérez ces informations.

14.3. La souris

La première chose à vérifier est le type de souris que vous avez (par exemple, série, PS/2...) et le pilote (par exemple, wsmouse requière un protocole différent). Si vous avez une souris série, choisissez le protocole correspondant et le port sur lequel elle est branchée. Par exemple, pour une souris série sur le premier port série :

Section "Pointer"
  Protocol    "Microsoft"
  Device      "/dev/tty00"
EndSection    

Pour une souris utilisant wsmouse, vous aurez :

Section "Pointer"
  Protocol    "wsmouse"
  Device      "/dev/wsmouse0"
EndSection    

Dans le champ «Device» (périphérique), vous pouvez aussi indiquer /dev/mouse à condition d'avoir correctement créé le lien. Par exemple :

# ln -sf /dev/wsmouse0 /dev/mouse    

14.4. Le clavier

Même si vous avez déjà configuré le clavier avec wscons, vous devez aussi le faire pour X afin de bénéficier des claviers non-US.

Une solution simple est d'utiliser le protocole XKB, en indiquant le type et l'organisation des touches.

C'est l'une des parties où les programmes de configuration ne sont pas très forts. Vous pouvez alors choisir le clavier standard puis le changer à la main dans l'éditeur.

# XkbDisable
# XkbKeymap   "xfree86(us)"

XkbModel        "pc102"
XkbLayout       "de"
XkbVariant      "nodeadkeys"    

Si vous voulez utiliser les touches «Windows» de votre clavier, utilisez le modèle pc105 au lieu de pc102.

14.5. L'écran

Il est très important d'indiquer des valeurs correctes pour les fréquences horizontales et verticales de l'écran : une définition correcte protège l'écran de dommages que peut causer une incompatibilité entre la configuration et la carte vidéo. Cette information se trouve dans le manuel de l'écran. Le répertoire de documentation de X contient une liste de paramètres de nombreux écrans. Elle peut être utilisée comme point de départ pour personnaliser vos propres paramètrages.

14.6. Carte vidéo et serveur X

La carte vidéo peut être choisie dans la base de données du programme de configuration qui se débrouillera pour déterminer les paramètres.

Lorsque vous aurez choisi la bonne carte vidéo, il vous faudra choisir le serveur correspondant. Habituellement, le programme peut le trouver automatiquement mais certaines cartes peuvent être pilotées par plusieurs serveurs (par exemple, S3 Virge est supportée par les serveurs SVGA et S2V). Dans ce cas, étudiez la documentation de ces serveur et décidez celui que vous préférez : différents serveurs ont généralement différentes capacités et différents degrés de support de la carte vidéo.

14.7. Démarrer X

Lorsque vous quittez le programme de configuration, celui-ci crée le fichier /etc/XF86Config qui peut alors être examiné voire modifié à la main.

Avant de lancer X, vous devez :

Vous pouvez alors démarrer X avec la commande suivante :

# startx    

Si X ne s'allume pas, c'est probablement qu'il y a des erreurs dans le fichier de configuration.

Si X démarre mais ne fonctionne pas comme attendu (par exemple vous ne pouvez pas bouger la souris), vous pouvez quitter précipitamment avec la combinaison de touches Ctrl-Alt-Effacer (pas dans tous les portages). Si tout marche correctement, vous restez dans l'environnement X avec le gestionnaire de fenêtres par défaut (twm) : bien qu'il soit simplifié, beaucoup d'utilisateurs le jugent suffisant pour leurs besoins. Si vous voulez un gestionnaire de fenêtres hautement configurable avec des cloches et des flûtes, vous avez du choix dans la collection de paquetages.

Pour commencer à personnaliser X, essayez la commande suivante, dans un xterm, pour changer la couleur du fond :

# xsetroot -solid DarkSeaGreen    

14.8. Personnaliser X

L'aspect de l'environnement X peut être personnalisé de différentes façons. La méthode la plus simple est de copier le fichier par défaut .xinitrc dans votre répertoire personnel et de le modifier. Par exemple :

# cp /usr/X11R6/lib/X11/xinit/xinitrc ~/.xinitrc
# vi .xinitrc
    

L'exemple suivant montre comment démarrer le gestionnaire de fenêtres (twm), ouvrir une instance du programme xclock en bas à droite de l'écran et deux fenêtres xterm. La couleur " Bisque4"  est utilisée comme fond d'écran.

la première partie du fichier est identique
...
# lancer quelques programmes sympa
twm &
xclock -geometry 50x50-1-1 &
xterm -geometry 80x34-1+1 -bg OldLace &
xsetroot -solid Bisque4 &
exec xterm -geometry 80x44+0+0 -bg AntiqueWhite -name login    

Avec ce genre de paramètrages, pour éditer X, vous devez fermer le dernier terminal (celui dont le titre est " login" ).

Même avec ces simples modifications X acquière une allure nettement meilleure. Pour lui en donner une encore meilleure vous pouvez installer des utilitaires à partir de la collection de paquetages. Par exemple :

xcolorsel

affiche toutes les couleurs définies dans rgb.txt. Utilisez-le pour choisir la couleur de la fenêtre racine et des xterms.

xpmroot

vous permet d'afficher une image en fond d'écran.

xscreensaver

Un économiseur d'écran pour X.

xdaemon

aucun bureau ne peut être complet sans ce paquetage : il affiche une image du démon BSD, en deux tailles au choix, qui se déplace sur l'écran.

14.9. Autres gestionnaires de fenêtres

Si vous n'aimez pas twm, qui est un gestionnaire très simple auquel il manque beaucoup de fonctions et n'est pas très paramétrable, vous pouvez en choisir un autre dans la collection de paquetages. Les plus connus sont : fvwm2, olwm/olvwm (Open Look Window Manager), WindowMaker, Enlightenment, AfterStep.

Le reste de cette section prend l'installation de WindowMaker comme exemple. C'est un gestionnaire de fenêtres d'aspect agréable et très configurable. Pour ajouter le programme, le paquetage pré-compilé windowmaker-0.60.tgz sera utilisé. Il dépend d'autres paquetages qui devront aussi être installés. Comme d'habitude, pkg_add et make install iront chercher automatiquement les paquetages requis sans que nous n'ayons besoin de nous en préoccuper.

# cd /usr/pkgsrc/x11/windowmaker
# make depends-list
xpm-3.4k
jpeg-6b
pkglibtool-1.2p2
giflib-3.0
libproplist-0.9.1
tiff-3.5.2    

Note : vous pouvez connaître les dépendances avec la commande :

# pkg_info -f windowmaker-0.61.0.tgz | grep depends      

Après avoir trouvé les paquetages voulus, WindowMaker et des thèmes pré-définis peuvent être ajoutés :

# pkg_add windowmaker-0.61.0.tgz wmthemes-0.6x.tgz      

WindowMaker est maintenant installé. Pour le démarrer, il vous faut modifier vos fichiers .xinitrc ou .xsession. Modifiez la ligne qui appelle wmaker. Par exemple :

# lancer quelques programmes sympa
# lancer WindowMaker
wmaker &
xclock -geometry 50x50-1-1 &
xdaemon2 -geometry +0-70 &
...      
Dans cet exemple, le programme xdaemon est aussi lancé automatiquement.

Avant de démarrer WindowMaker, le programme de configuration doit être lancé :

$ wmaker.inst
$ startx
    

14.10. Connexion graphique avec xdm

Si vous travaillez systématiquement sous X et si la première chose que vous faites, une fois connecté, est de lancer startx, vous pouvez mettre en place une invite de connexion (login) graphique qui le fait tout seul. C'est très facile :

  1. Créez un fichier .xsession dans votre répertoire personnel. Il est identique à ~/.xinitrc et peut, en fait, être un lien vers ce dernier.

  2. Modify /etc/rc.conf:

    xdm=YES       xdm_flags=""       # x11 display manager	  
    Si vous préférez (pourquoi ?), vous pouvez ajouter une ligne à la fin du fichier /etc/rc.local au lieu de modifier rc.conf :
    /usr/X11R6/bin/xdm	  
    Cette méthode peut être utilisée pour démarrer, par exemple, kdm ou gdm plutôt que xdm.

Les fichiers de configuration de xdm se trouvent dans le répertoire /usr/X11R6/lib/X11/xdm. Dans le fichier Xservers, X est démarré, par défaut, sur le terminal virtuel vt05. Si vous voulez utiliser un autre terminal, c'est le bon endroit pour indiquer lequel. Pour viter tout conflit entre getty et xdm, mieux vaut dmarrer ce dernier sur un terminal virtuel o getty est dsactiv. Par exemple, si dans Xservers vous avez :

:0 local /usr/X11R6/bin/X :0 vt04    

dans /etc/ttys vous devrez avoir :

ttyE3   "/usr/libexec/getty Pc"         vt220   off secure    

(notez que vt04 correspond ttyE3 car vt commence 1 et ttyE 0).

Si vous voulez un bel aspect pour votre écran de connexion xdm, vous pouvez modifier son fichier de configuration. Par exemple, pour changer la couleur du fond d'écran, ajoutez la ligne suivante au fichier Xsetup_0 :

xsetroot -solid SeaGreen    

Plutôt que de mettre une couleur, vous pouvez afficher une image à l'aide du programme xpmroot. Par exemple :

xpmroot /path_to_xpm/netbsd.xpm    

Si vous fouillez un peu le fichier de configuration, vous pourrez établir de nombreux effets visuels et afficher un écran de démarrage plaisant.