XMODMAP(1) | General Commands Manual | XMODMAP(1) |
xmodmap - Modifier les tables de correspondance des touches et des boutons du pointeur sous X
xmodmap [-options ...] [nom_de_fichier]
Le programme xmodmap est utilisé pour éditer et afficher la table des modificateurs du clavier et la table de correspondance utilisées par les applications clientes pour convertir les keycodes (événements clavier) en keysyms (symboles utilisés par les applications clientes). Il est habituellement lancé par le script de démarrage de session de l'utilisateur afin d'accorder le clavier à ses propres goûts.
Les options suivantes peuvent être utilisées avec xmodmap :
nom_de_fichier indique un fichier contenant les expressions devant être exécutées par xmodmap. Ce fichier est en général conservé dans le répertoire principal de l'utilisateur sous un nom tel que .xmodmaprc.
Le programme xmodmap lit une liste d'expressions et les analyse toutes avant de tenter d'exécuter l'une d'entre elles. Cela permet de se référer à des keysyms qui ont été redéfinis d'une façon plus naturelle sans avoir à se préoccuper des conflits de noms.
La liste des noms des keysyms peut être trouvée dans le fichier d'en-tête : <X11/keysymdef.h> (sans le prefix XK_). Les keysyms correspondants à des caractères Unicode peuvent être indiqués de « U0020 » à « U007E » et de « U00A0 » à « U10FFFF » pour tous les caractères Unicode possibles.
Les lignes qui commencent par un point d'exclamation (!) sont des commentaires.
Si vous voulez changer le lien d'une touche de modificateur, vous devez l'enlever de la table du modificateur appropriée.
De nombreux pointeurs (souris) sont conçus pour que le premier bouton soit pressé avec l'index de la main droite. Les gauchers trouvent généralement qu'il est plus confortable d'intervertir les codes de boutons générés de manière à ce que le premier bouton soit pressé avec l'index de la main gauche. Cela peut être fait sur une souris à 3 boutons de cette manière :
% xmodmap -e "pointer = 3 2 1"
Beaucoup d'applications supportent la notion de touche « Meta » (équivalente à la touche Control, sauf que la touche Meta reste enfoncée contrairement à la touche Control). Cependant, certains serveurs n'ont pas par défaut de keysym Meta dans la table de correspondance des touches et celui-ci doit donc être ajouté manuellement. La commande suivante attache Meta à la touche Multi-langage (parfois indiquée par Compose). Cela tire avantage du fait que les applications qui ont besoin d'une touche Meta nécessitent simplement d'avoir le keycode et ne requièrent pas que le keysym soit dans la première colonne de la table de correspondance des touches. Cela signifie que les applications qui cherchent une touche Multi_key (y compris la table de modificateur par défaut) n'y verront aucun changement.
% xmodmap -e "keysym Multi_key = Multi_key Meta_L"
De la même manière, certain claviers ont une touche Alt, mais pas de touche Meta. Dans ce cas, la commande suivante peut être utile :
% xmodmap -e "keysym Alt_L = Meta_L Alt_L"
Une des plus simples, mais pratique, utilisations de xmodmap est de changer la touche « Suppr.E » (ou « delete ») pour générer un keysym différent. Cela implique généralement d'échanger Backspace avec Delete pour plus de confort d'utilisation. Si la ressource ttyModes dans xterm est positionnée convenablement, toutes les fenêtres des émulateurs de terminaux utiliseront la même touche pour effacer les caractères :
% xmodmap -e "keysym BackSpace = Delete" % echo "XTerm*ttyModes: erase ^?" | xrdb -merge
Certains claviers ne génèrent pas automatiquement les caractères « plus petit que < » et « plus grand que > » quand le point et la virgule sont décalés. On peut remédier à cela avec xmodmap en ré-affectant les touches point et virgule avec le script suivant :
! ! Changer shift- en < et shift-. en > ! keysym comma = comma less keysym period = period greater
L'une des plus irritantes différences entre les claviers est la position des touches Control et CapsLock. Une utilisation habituelle de xmodmap est d'échanger ces deux touches :
! ! Échanger Caps_Lock et Control_L ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L
L'exemple peut être exécuté une nouvelle fois pour rétablir les assignations précédentes des touches.
La commande keycode est utile pour assigner le même keysym à plusieurs keycodes. Bien que non portable, cette méthode rend possible l'écriture de scripts qui peuvent réinitialiser le clavier à un état connu. Le script suivant définit la touche backspace pour générer Delete (comme vu précédemment), efface tous les liens avec caps lock, fait de la touche CapsLock une touche Control, fait que F5 génère Escape, et fait que Break/Reset soit le verrouillage majuscule.
! ! sur HP, les keycodes suivants sont étiquetés : ! ! 101 Backspace ! 55 Caps ! 14 Ctrl ! 15 Break/Reset ! 86 Stop ! 89 F5 ! keycode 101 = Delete keycode 55 = Control_R clear Lock add Control = Control_R keycode 89 = Escape keycode 15 = Caps_Lock add Lock = Caps_Lock
xev(1), setxkbmap(1), XStringToKeysym(3), X(7), la documentation Xlib sur les touches et les événements du pointeur
Chaque fois qu'une expression keycode est évaluée, le serveur génère un événement MappingNotify sur chaque client. Cela peut causer quelque emballement. Tous les changements devraient être groupés et exécutés ensemble. Les clients qui reçoivent une entrée clavier et ignorent les événements MappingNotify ne seront pas prévenus des changements effectués aux correspondances clavier.
Xmodmap devrait générer les expressions « add » et « remove » automatiquement quand un keycode déjà lié à un modificateur est changé.
Il devrait y avoir un moyen pour que l'expression remove accepte les keycodes aussi bien que les keysyms pour les fois où vous cassez vraiment les correspondances.
Jim Fulton (MIT X Consortium) ré-écrit à partir d'une précédente version de David Rosenthal (Sun Microsystems).
La traduction française de cette page de manuel a été créée par José JORGE, Cyril Guilloud <guilloud@lautre.net>, Simon Depiets, Gérard Delafond <gerard@delafond.org>, Bernard Siaud, Nicolas François <nicolas.francois@centraliens.net> et David Prévot <david@tilapin.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
xmodmap 1.0.11 | X Version 11 |