s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre |
Next
Previous
Contents
5. XFree
5.1 Introduction
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
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 !
5.2 Mal programmer
À 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().
5.3 Le clavier en pratique
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é !
a) Solution utilisant xmodmap
Taper :
b) Solution utilisant xkb (recommandée)
Taper :
Puis éditer votre
Pour cette partie Xkb, certains préfèrent :
Bien sur, remplacer « fr » par « cn », « be », « ch » ou « usx » selon votre clavier...
c) Solution du compose
Une autre méthode pour obtenir des caractères 8 bits : Dans
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 :
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 ».
d) Solution modifiant la libX11
Thomas Quinot <Thomas.Quinot(à)cuivre.fdn.fr> vous propose donc sa
Elle permet également de traiter les séquences composées inconnues comme des paires de caractères, par exemple :
Pour l'utiliser :
e) Est-ce nécessaire ?
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
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 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.
5.4 « latin9 » ou « latin1 » ?
Je vous conseille de choisir les tables 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 !
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 ( Tous ces signes s'obtiennent grâce à AltGr (lettre), par exemple
AltGr (b) donne ß, AltGr (r) donne Pour vous rapeller simplement de tout celà, tapez par exemple :
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.
5.6 Les polices ISO 8859-15 latin 9 sous X
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 :
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 :
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 :
Si vous utilisez xmodmap, lancez :
Pour choisir les polices latin9, lancer xfontsel et chercher les encodages iso8859-15. Ou plus simplement, taper :
Puis utiliser le second paramètre comme nom de police, par exemple avec rxvt, xiterm, aterm ou wterm:
Cela lance un terminal X utilisant une des polices latin9.
Next Previous Contents |