Page suivante Page précédente Table des matières

5. Réglage du clavier sous XFree

5.1 Introduction

«xmodmap» servait à changer les tables de clavier sous XFree, un fichier de configuration d'ordinaire nommé /usr/X11/lib/X11/xinit/.Xmodmap étant pris en charge grâce à votre .xinitrc (à lire !).

Pour convertir une table console correcte, on utilisait «mk_modmap» (livré avec l'archive 'kbd' et généralement installé en /usr/lib/kbd/keytables)

Les utilisateurs désirant personnaliser leur table xmodmap employaient le programme «xkeycaps».

XFree 2.1 et les version ultérieures reconnaissent la disposition des touches du clavier gérée par «loadkeys», cela rendant théoriquement xmodmap inutile.

Mais la gestion de la touche «COMPOSE» assurée par XFree 3.1 laissait un peu à désirer, la table héritée de «loadkeys» ne servant guère.

Il fallait donc continuer à employer xmodmap, l'utilitaire logiciel standard permettant d'obliger le serveur X à associer les événements souris/clavier à des caracères.

Sous XFree version 3.2 et postérieures, «xkb» rendit xmodmap définitivement obsolete.

Mais ne voilà-t-il pas les rumeurs qui voulaient que les prochaines versions de XFree (3.3.1) ne supporte plus les touches mortes se sont confirmées !!!

Dans la distribution X11 du X Consortium (donc XFree86, qui en est directement issu), il n'existe plus de mécanisme général de gestion des touches mortes, ou des solutions approximatives obligeant à supprimer (aussi) xkb !

Quelle histoire compliquée !

De ce fait, elles ne fonctionnents que pour les clients X «internationalisés», c'est-à-dire qui gèrent eux-mêmes les problèmes liés aux méthodes d'entrée de données des différentes langues nationales.

Ceci est très gênant lorsqu'on veut pouvoir saisir du texte comportant des lettres accentuées, alors que le client utilisé n'est pas internationalisé !

Thomas Quinot (Thomas.Quinot à cuivre.fdn.fr) vous propose donc sa libX11 modifiée, qui gère les touches mortes de manière transparente pour tous les clients.

Elle permet également de traiter les séquences composées inconnues comme des paires de caractères, par example :

~ + / = ~/

Pour l'utiliser :

5.2 Conseils

Personellement, je vous recommande de ne pas toucher à la libX11 mais d'utiliser les alternatives du fichier french en attendant un autre changement de la politique du X11 Consortium envers les touches mortes ou en rajoutant les options d'internationalisation au code source de vos programmes.

Actuellement, si vous n'avez pas de répertoire /usr/X11R6/lib/X11/xkb/symbols/ , procurez-vous donc une version plus récente de X window !

5.3 Est-ce nécessaire ?

Sans xkb, XFree se rabattra par défaut sur votre configuration de clavier pour Linux (avec loadkeys). Toutefois, la translation n'est pas parfaite et je vous recommanderais plutôt d'éviter cette option, aussi bien que l'ancien gestionnaire de clavier Xmodmap.

Il se peut aussi que sans aucune commande pour xkb, XFree vous considère comme utilisateur d'un clavier anglo-américain !

Il convient donc d'utiliser «fr» ou «french» avec xkb ; toutefois ce dernier permet d'utiliser de multiples améliorations pour disposer du plus de confort possible (gage de confort : je l'utilise actuellement :-) ).

5.4 «french» ou «fr» ?

Je vous conseille de choisir french que je maintient à jour, plus récent que fr et plus adapté car maintenu par un francophone :-)

De plus, il bénéficie de nombreuses améliorations pour pallier au déficiences de nombreux programmes.

Par exemple, certains programmes en Motif comme Netscape (tm) ne savent pas encore gérer les touches mortes ... donc impossible de taper par exemple des ê ou des î sur les claviers belges et français, puisque la touche morte «accent circonflexe» est le seul moyen d'obtenir ces caractères !

«french» répond à ce problème en proposant une solution de remplacement : AltGr (voyelle) permet d'obtenir la voyelle avec un accent grave, AltGr+Shift (voyelle) permet d'obtenir la voyelle avec un tréma !

5.5 Table de correspondances

Par exemple :

L'astuce marche aussi pour le c cédille :

Donc même dans les pires conditions (si aucune touche morte ne fonctionne), on peut quand même accéder à toutes les voyelles accentuées, majuscules et minuscules !

Vous y trouverez en plus les guillemets français (« »), les symboles employés en physique (ß, å, delta, phi ...), des signes de monnaies (yen, cent) ou de copyright (™, ©) ainsi que des lettres d'autres langues (Ø, Æ ...).

Tous ces signes s'obtiennent grâce à AltGr (lettre), par exemple AltGr (b) donne ß, AltGr (r) donne ™, AltGr (y) donne yen...

Pour ce qui est du choix entre les deux... à vous de voir !

Un conseil : essayez l'un puis l'autre.

5.6 Faire de ces modification les défaut au lancement de X

Pour XFree, votre fichier XF86Config doit contenir une section Keyboard :

Section "Keyboard"
Protocol        "Standard"
AutoRepeat      500 30
LeftAlt         Meta
RightAlt        ModeShift               # Important pour Alt-gr, mais dans les
                                        # versions récentes de XFree,
                                        # AltGr et RightAlt sont synonymes.
ScrollLock      Compose                 # Pour faire des caractères spéciaux.
                                        # Utiliser sinon une des 3 touches des
                                        # nouveaux claviers 105 touches...

RightCtl        Control                 # Garder la touche normale


XkbKeycodes     "xfree86"       #
XkbTypes        "default"       #
XkbCompat       "default"       #
XkbSymbols      "french(pc102)" #
XkbGeometry     "pc(pc102)"     #  Tout est nécessaire pour xkb
XkbModel        "pc102"         #
XkbLayout       "french"        #
XkbRules        "xfree86"       #
# Remplacer «french» par «ca» ou «be» ou «fr_CH» 
EndSection

Pour cette partie Xkb, certains préfèrent :

XkbKeymap "xfree86(french)"
XkbKeycodes  "xfree86"
XkbSymbols   "en_US(pc101)+french"
XkbGeometry  "pc(pc101)"

5.7 Où trouver ces fichiers

french est inclu dans ce HOWTO (au chapitre «Fichiers inclus») et tous les autres fichiers se trouvent d'ordinaire dans le répertoire /usr/X11R6/lib/X11/xkb/symbols/.

Pour l'installer, vous pouvez donc le recopier ou plus simplement le télécharger par ftp.

Tapez donc :

ftp ftp.linux.france.com
cd pub/
cd french
get french
exit
su root -c "cp french /usr/X11R6/lib/X11/xkb/symbols/"

Mettre «french» dans /usr/X11R6/lib/X11/xkb/symbols/french et « french.map» dans /usr/lib/kbd/keytables/french.map ou /usr/share/keytables/french.map.

5.8 Autre méthodes

Une autre méthode pour obtenir des caratères 8 bits :

Dans /usr/X11R6/lib/X11/locale/iso8859-1/Compose se trouve une table de «correspondance» entre deux caractères et un résultat ; les deux caractères sont «mélangés» lors de l'appui sur la touche Compose : par exemple;

<Touche COMPOSE> e ^

a toutes les chances de vous donner ê

Pour utiliser la touche Compose, vous devez l'affecter à une touche !

Le paramétrage préconisé, réglé dans XF86Config, la fait correspondre à la touche «Arrêt Défil» par la commande :

ScrollLock Compose

dans la section keyboard.

Éditez sinon votre table de clavier et remplacez par exemple :

        key <TLDE> {      [       twosuperior,    threesuperior   ]       };

par :

        key <TLDE> {              [       twosuperior,    threesuperior   ],
                                        [       Compose                         ]       };

Si vous avez par exemple un clavier belge ou français, désormais appuyer sur la touche (carré/cube) vous donnera normalement (carré) en minuscules, (cube) en majuscules et en AltGr la fameuse fonction Compose ; vous pouvez bien sur décider d'attribuer Compose à une autre touche ; je vous recommande toutefois d'utiliser ScrollLock, bien moins utilisée que les autres touches.

NB : La touche carré/cube), peu utilisée, est par défaut assignée aux guillemets français carré et cube restant accessible respectivement en AltGr et AltGr + Shift ainsi que par l'accent circonflexe suivi du chiffre.

Pour modifier ce comportement par défaut, il vous suffit avant d'utiliser les fichiers de configuration pour XFree et linux en mode console de repérer la ligne mise en commentaire au début du fichier et de supprimer ce commentaire !


Page suivante Page précédente Table des matières