Remplacement du X WINDOW Fournis.

Nous allons donc nous donner pour but d'installer un nouveau X Window en effet celui fournis relativement universel ne permets pas de tirer pleinement parti de la qualité graphique de votre carte graphique notament en terme de nombre de couleurs .
Nous n'utiliserons que des packages précompilés pour changer le système graphique parce que nous ne disposons pas de compilateurs ( sur la base de la distrib ).

Pour entrer dans notre sujet, je dirais (et c'est une interprétation très personnelle d'une réalité qui me dépasse ;-) que le système X Window est un ménage à trois : il se base sur une architecture client / serveur, où le serveur X gère tous les accès au clavier, à la souris et à la carte graphique et à l'écran et où les applications X sont ses clientes qui lui envoient leurs commandes. En sus, toute la gestion des fenêtres dans lesquelles fonctionnent ces applications X est confiée à un gestionnaire de fenêtre (ou X Window Manager) qui défini leur taille, leur emplacement, leur aspect, etc ... Par conséquent, il n'est jamais inutile, quand nous sommes confrontés à une difficulté, de se demander auquel de ces trois acteurs nous avons à faire.

Ainsi, pour que X fonctionne avec votre matériel, il convient d'abord de choisir le serveur X approprié à votre carte graphique. Consultez pour cela la liste XFree86 Video Card and X server list, vous trouverez également d'autres informations sur le site officiel The XFree86 Project : http://www.xfree86.org/

Il existe d'autres bases de données semblables sur le net : par exemple le site de S.U.S.E propose une base de données bien utile pour savoir si un matériel est supporté. Voyez donc sur SuSE Linux - Supported Hardware en selectionnant "Graphics adaptater" et en tapant le nom de la marque de votre carte, quel serveur la supporte.

Downloader le serveur qui supporte votre carte graphique par exemple mach64, et le packages de configuration:

/x1/xcfg.tgz            fichiers de configuration pour X Window et xdm
/x1/xma64.tgz        le serveur Xfree86 mach64 qui supporte ma carte graphique.

Si vous avez une autre carte graphique regardez dans le repertoire ci dessous:
/x1 vous trouverez votre bonheur!

Installez ces packages à l'aide du menu F2 de Midnight Commander : Install current (slakware x.tgz) package

ou en ligne de commande (en supposant que vous les avez copiés dans un répertoire /perso/slakware/x1) :

# pkg -i /perso/slakware/x1/xcfg.tgz
# pkg -i /perso/slakware/x1/xma64.tgz

Ceci étant fait, il s'agit alors de configurer le serveur X à l'aide du script xf86config. C'est lui qui va écrire pour vous le fichier XF86Config dans le répertoire /etc, fichier qui regroupe toutes les informations nécessaires pour l'utilisation de la souris, du clavier, de l'écran et de la carte graphique . Vous trouverez dans le répertoire /usr/doc/guides Lancez alors ce script de configuration par la commande :

# xf86config

Pas de panique : vous pouvez recommencer autant de fois que vous le voulez, l'interrompre au milieu ou écrire presque n'importe quoi (évitez absolument cependant de donner des valeurs trop élevées pour les fréquences de balayage de votre écran) sans que votre PC explose ... à chaque fois le script va simplement réécrire le fichier XF86Config. Ce qui peut arriver c'est que X refuse de se lancer ou se lance mal : dans ces cas, il vous gratifiera d'une généreuse volée de messages d'erreurs qui s'afficheront sur la console à la sortie de X ou même avant ... :o)

Néanmoins, je vous livre ici avec quelques commentaires sur sa structure, mon fichier XF86Config, duquel j'ai retiré toutes les lignes commentées ainsi que celles qui m'ont semblé inutiles afin de rendre sa lecture plus claire :

Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
    FontPath "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection

Section "ServerFlags"
EndSection

Section "Keyboard"
    Protocol "Standard"
    AutoRepeat 500 30
    LeftAlt Meta
    RightAlt ModeShift
    XkbDisable
    XkbKeymap "fr_FR"
EndSection

Section "Pointer"
    Protocol "Microsoft"
    Device "/dev/mouse"
    Emulate3Buttons
    Emulate3Timeout 50
EndSection

Section "Monitor"
    Identifier "17gli"
    VendorName "Unknown"
    ModelName "Unknown"
    HorizSync 31.5 - 64.3
    VertRefresh 50-120
Modeline "1024x768" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
Modeline "640x480" 45.8 640 672 768 864 480 488 494 530 -HSync -VSync
Modeline "800x600" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync
EndSection

Section "Device"
    Identifier "ati"
    VendorName "Unknown"
    BoardName "Unknown"
EndSection

Section "Screen"
    Driver "accel"
    Device "ati"
    Monitor "17gli"
    Subsection "Display"
        Depth 32
        Modes "1024x768" "800x600" "640x480"
        ViewPort 0 0
    EndSubsection
EndSection

Vous voyez que ce fichier comporte des sections qui commencent toutes par Section [nom] et se terminent par EndSection (il peut y avoir également des sous-sections).

La première, Section "Files", indique les chemins d'accès aux polices de caractères et à la base de couleur RGB. La seconde, Section "ServerFlags", est généralement vide : elle décrit d'éventuelles options du serveur. La troisième, Section "Keyboard", contient les références du clavier, la quatrième, Section "Pointer", celles de la souris.

Puis on trouve une section qui décrit les caractéristique de l'écran : Section "Monitor" avec, entre autres ses fréquences de balayage et comme dans la suivante, Section "Device", qui décrit les caractéristiques de la carte graphique, on trouve sous la référence Identifier un nom que l'on va retrouver dans la dernière, Section "Screen", qui réuni les coordonnées de la carte, de l'écran et du serveur X utilisé et défini la profondeur de couleur qui va être affichée.

Il va sans dire que ces paramètres de configuration doivent correspondre au matériel ...

Donc, après avoir exécuté le script XF86Config et répondu tant bien que mal à toutes ces questions ésotériques, votre fichier /etc/XF86Config a été crée et vient le moment de vérité : lancer X par la commande $ startx.

Ca marche ... icewm s'affiche à l'écran ... cool :-)

Pour être sérieux, sachez que vous devriez pouvoir éliminer tous les messages d'erreur en modifiant le fichier XF86Config, soit à la main, soit en exécutant autant de fois qu'il le faut le script xf86config.

Par ailleurs, vous trouverez d'intéressantes informations sur la configuration des différents claviers francophones sur www.linux-france.com/article/nation/

Outre le fichier /etc/XF86Config, X Window se lance également sur la base du fichier de configuration xinitrc. En effet, la commande startx appelle en fait le programme xinit qui, comme son nom le suggère, est chargé de lancer X Window. Ce fichier peut être placé, soit dans les répertoires /var/X11R6 ou /usr/X11R6 et dans ce cas il regroupe les paramètres de lancement définis par défaut pour l'ensemble du système, soit dans les répertoires /home, sous la forme d'un fichier cache .xinitrc, dans lequel chaque utilisateur pourra choisir sa propre configuration. En effet, ce sont toujours les fichiers de configuration propres à chaque utilisateur qui sont exécutés en priorité.

Voici le fichier xinitrc qui est proposé par défaut dans l'installation de base :

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

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

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Nous voyons qu'il fait appel à deux autres fichiers, Xresources et Xmodmap, qu'il prévoit d'exécuter en priorité ceux qu'il trouvera éventuellement dans le répertoire /home de l'utilisateur concerné et qu'il se termine par l'appel du window manager twm. De plus, il lance automatiquement l'horloge xclock et trois terminaux xterm en précisant leur taille et leur emplacement (vous trouverez la liste de toutes les options de xterm par la commande $ xterm -h)

Concrètement, cela correspond à ce qui s'affiche à l'écran quand vous lancez X par startx ...

Par ailleurs, le fichier xmodmap contient la ligne nécessaire à l'activation de la touche backspace sous X et fait appel à la commande xmodmap :

keycode 22 = BackSpace

Le fichier Xresources contient lui les paramètres de la base de données des ressources X et se lance depuis xinitrc par la commande xrbd. Son utilisation permet de définir des paramètres valables sous X pour des groupes d'applications : en effet, on peut regrouper les applications clientes X dans des classes d'applications. Par exemple la classe Xterm regroupera des terminaux comme xterm ou eterm, la classe Background les fonds des fenêtres, et définir pour l'ensemble d'une classe des paramètres de configuration particuliers, en respectant la syntaxe suivante :

(Classe | Nom)*(Classe ressource | Nom ressource): (valeur)

Par exemple, pour établir que tous les terminaux xterm affichent le texte en blanc sur fond noir, on pourrait créer un fichier Xresources avec les lignes :

Xterm*Foreground:white
Xterm*Background:black

Voici, par ailleurs celui qui est proposé dans l'installation par défaut :

! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
xlogin*login.translations: #override\
        Ctrl<Key>R: abort-display()\n\
        <Key>F1: set-session-argument(failsafe) finish-field()\n\
        Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
        <Key>Return: set-session-argument() finish-field()
xlogin*borderWidth: 3
xlogin*greeting: CLIENTHOST
xlogin*namePrompt: login:\040
xlogin*fail: Login incorrect
#ifdef COLOR
xlogin*greetColor: CadetBlue
xlogin*failColor: red
*Foreground: black
*Background: #fffff0
#else
xlogin*Foreground: black
xlogin*Background: white
#endif

XConsole.text.geometry: 480x130
XConsole.verbose: true
XConsole*iconic: true
XConsole*font: fixed

Chooser*geometry: 700x500+300+200
Chooser*allowShellResize: false
Chooser*viewport.forceBars: true
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
Chooser*label.label: XDMCP Host Menu from CLIENTHOST
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*

Deux mots à présent sur les commandes qui vous permettent de lancer X et d'en sortir :

De même que les combinaisons de touches Alt-F1, Alt-F2, vous permettent en mode console de passer d'une console à l'autre, les commandes Ctrl-Alt-F1, Ctrl-Alt-F2 vous permettent depuis une session X ouverte sur une certaine console de repasser en mode console, sans pour autant fermer X. Pour quitter X, soit tapez $ exit dans un terminal (l'équivalent d'une console sous X, par exemple xterm) soit sortir de X avec Crtl-Alt-F3 (suivant la console) puis faire Ctrl-c. Sachez également, que bien que vous puissiez ouvrir plusieurs écrans virtuels dans la même session X, il n'est pas possible d'ouvrir deux sessions X en même temps, ni d'ailleurs avoir deux X Window Manager différents exécutés dans la même session.