Il y a quelques ann�es, � 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 ou /etc/X11/xinit/xinitrc
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 �.
Puis XFree 2.1 et les version ult�rieures ont reconnu la disposition des touches du clavier g�r�e par � loadkeys �, 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 caract�res.
Sous XFree version 3.2 et post�rieures, � xkb � rendit xmodmap d�finitivement obsol�te.
Mais ne voil�-t-il pas les rumeurs qui voulaient que les prochaines versions de XFree 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 ou modifier des biblioth�ques de programmes !
� chaque programme de bien g�rer les touches mortes au lieu de faire confiance � X pour cette t�che.
En r�alit�, il n'est pas compliqu� de g�rer des touches mortes, il suffit d'utiliser la bonne fonction, XmbLookupString() dans les programmes Motif, au lieu de XLookupString().
Quelle histoire compliqu�e !
De ce fait, elles ne fonctionnent 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� !
Taper :
cp fr-latin9.xmod /usr/X11R6/lib/X11/xinit/Xmodmap cp fr-latin9.xmod ~/.Xmodmap |
Taper :
cp fr-latin9 /usr/X11R6/lib/X11/xkb/symbols |
Puis �diter votre XF86Config pour y rajouter dans la section � Keyboard � les lignes xkb idoines :
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" XkbRules "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "fr-latin9(pc105)" XkbGeometry "pc(pc105)" XkbModel "pc105" EndSection |
Pour cette partie Xkb, certains pr�f�rent :
XkbKeymap "xfree86(fr-latin9)" XkbKeycodes "xfree86" XkbSymbols "en_US(pc101)+fr-latin9" XkbGeometry "pc(pc101)" |
Bien sur, remplacer � fr � par � cn �, � be �, � ch � ou � usx � selon votre clavier...
Une autre m�thode pour obtenir des caract�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;
COMPOSE suivi de � e � puis � ^ � |
a toutes les chances de vous donner �, y compris dans l'ordre oppos� (� ^ � puis � e �)
Mais 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 � inutile sous X, par la commande :
ScrollLock Compose |
dans la section Keyboard.
Attention, sous Linux en mode console, cette touche est utile (pour bloquer temporairement la console virtuelle) et c'est � Impr �cran � ou � Print Screen � qui, ne servant � rien, est affect�e � � Compose �.
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 exemple :
~ + / = ~/ |
Pour l'utiliser :
R�cup�rez libX11-XF3.3.1.tar.gz ;
Extrayez le fichier libX11.so.6.1 ;
Placez-le dans /usr/X11R6/lib/ ;
Ex�cutez ldconfig ;
D�sactivez l'extension XKB en utilisant l'option XkbDisable dans la section Keyboard de votre XF86Config.
Personnellement, je vous recommande de ne pas toucher � la libX11, d'oublier xmodmap et de l'alternative xkb + fichiers latin9 en attendant un autre changement de la politique du X 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/ cela signifie que vous n'utilisez pas xkb : procurez-vous donc une version plus r�cente de X window !
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 7 bits !
Il convient donc d'utiliser une table adapt�e avec xkb.
Je vous conseille de choisir les tables latin9 que je maintiens � jour, plus r�centes que les versions latin1, permettant d'utiliser de multiples am�liorations, d�taill�es dans la section clavier sous linux-console, pour disposer du plus de confort possible et plus adapt�es car maintenu par des francophones.
Les nombreuses am�liorations dont elles b�n�ficient permettent de 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 des Belges et Fran�ais, puisque la touche morte � accent circonflexe � est le seul moyen d'obtenir ces caract�res !
� fr-latin9 � 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 !
AltGr (voyelle) : voyelle accent grave
AltGr + Shift (voyelle) : voyelle tr�ma
AltGr (touche au dessous de la voyelle) : voyelle majuscule accent grave
AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule tr�ma
AltGr + Shift (minuscule accentu�e) : majuscule accentu�e
Par exemple :
AltGr (a) : �
AltGr (q) : �
AltGr + Shift (�) : �
L'astuce marche aussi pour le c c�dille :
AltGr + Shift (�) : �
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 (tm, �) ainsi que des lettres d'autres langues (�, � ...).
Tous ces signes s'obtiennent gr�ce � AltGr (lettre), par exemple AltGr (b) donne �, AltGr (r) donne tm, AltGr (y) donne yen...
Pour vous rapeller simplement de tout cel�, tapez par exemple :
more /usr/lib/kbd/keytables/i386/azerty/fr-latin9.map |
Pour ce qui est du choix entre latin1 et latin9... � vous de voir !
Un conseil : essayez l'un puis l'autre si vous avez le temps.
Il est bien d'avoir une table de clavier compatible latin 9, mais sans police adapt�e jamais vous ne verrez les caract�res rajout�s dans cette norme.
Il faut donc utiliser l'utilitaire de conversion � bdftopcf � qui en quelque sorte permet de compiler les polices de caract�res fournies.
Placez-vous dans le r�pertoire de l'archive que vous avez r�cup�r� puis sous root, taper par exemple pour Xlat9-10x20.bdf ou un autre bdf :
bdftopcf Xlat9-10x20.bdf > Xlat9-10x20-lat9.pcf gzip Xlat9-10x20-lat9.pcf mv Xlat9-10x20-lat9.pcf.gz /usr/X11R6/lib/X11/fonts/misc mkfontdir /usr/X11R6/lib/X11/fonts/misc |
Cel� cr�e un fichier � Xlat9-10x20-lat9.pcf � qu'il faut compresser avec gzip, on obtient alors le fichier � Xlat9-10x20-lat9.pcf.gz � qui doit �tre mis dans le r�pertoire ad�quat, pour lequel l'index des polices de caract�res sera mis � jour.
Alors, ajoutez la table de composition latin9 aux compositions par d�faut de X, sp�cifiques � l'iso 8859-1 :
cat XCompose-lat9 >> /usr/X11R6/lib/X11/locale/iso8859-1/Compose |
Nous faisons un cat vers l'ISO 8859-1, car X ne reconna�t pas l'ISO 8859-15 latin9.
De l�, red�marrer X ou taper sous son compte d'utilisateur normal :
xset +fp /usr/X11R6/lib/X11/fonts/misc |
Si vous utilisez xmodmap, lancez :
xmodmap ~/.Xmodmap |
Pour choisir les polices latin9, lancer xfontsel et chercher les encodages iso8859-15.
Ou plus simplement, taper :
grep Xlat9-10x20.pcf /usr/X11R6/lib/X11/fonts/misc/* |
Puis utiliser le second param�tre comme nom de police, par exemple avec rxvt, xiterm, aterm ou wterm:
aterm -fn -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15 |
Cela lance un terminal X utilisant une des polices latin9.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:25