NOM¶
xmodmap - Modifier les tables de correspondance des touches et des boutons du
pointeur sous X
SYNOPSIS¶
xmodmap [-options ...] [nom_de_fichier]
DESCRIPTION¶
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.
OPTIONS¶
Les options suivantes peuvent être utilisées avec
xmodmap :
- -display display
- Cette option spécifie l'hôte et le display à
utiliser.
- -help
- Cette option indique qu'une brève description des
paramètres de la ligne de commande doit être affichée sur
la sortie d'erreur standard. Cela se produit également dès qu'un
paramètre incorrect est passé à xmodmap.
- -grammar
- Cette option indique qu'un message d'aide décrivant la
grammaire des expressions utilisées dans les fichiers et avec
l'option -e doit être affichée sur la sortie d'erreur
standard.
- -verbose
- Cette option (mode verbeux) indique que xmodmap doit
afficher les informations de journalisation pendant qu'il analyse ses
entrées.
- -quiet
- Cette option désactive le mode verbeux. C'est le mode
par défaut.
- -n
- Cette option indique que xmodmap ne doit pas changer
les correspondances mais doit juste afficher ce qu'il doit faire ; de
la même manière que make(1) quand on lui passe cette
option.
- -e expression
- Cette option indique une expression à exécuter.
En répétant -e, on peut spécifier plusieurs expressions
depuis la ligne de commande.
- -pm
- Cette option indique que la table des modificateurs doit
être affichée sur la sortie standard. Il s'agit du mode
d'opération par défaut si aucune option ne le change.
- -pk
- Cette option indique que la table des correspondances en
cours doit être affichée sur la sortie standard.
- -pke
- Cette option indique que la table des correspondances en
cours doit être affichée sur la sortie standard sous la forme
d'expressions pouvant être passées en paramètre à
xmodmap.
- -pp
- Cette option indique que la table du pointeur courante doit
être affichée sur la sortie standard.
- -
- Un tiret seul signifie que l'entrée standard doit
être utilisée comme fichier d'entrée.
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.
GRAMMAIRE DES EXPRESSIONS¶
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_) ou dans la base de donnée des keysyms
/usr/share/X11/XKeysymDB. 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.
- keycode NOMBRE = NOM_KEYSYM
...
- La liste des keysyms est assignée au keycode
indiqué (qui peut être spécifié en décimal,
hexadécimal ou octal et peut être déterminé grâce
au programme xev). On peut attacher jusqu'à 8 keysyms à
une touche, mais les 4 derniers ne sont utilisées par aucune
implémentation majeur de serveurs X. Le premier keysym est
utilisé quand aucune touche de modificateur n'est pressée en
même temps que la touche, le second quand la touche majuscule (Shift)
est pressée, le troisième en combinaison avec la touche
Mode_switch et le quatrième en combinaison avec les touches majuscule
et Mode_switch.
- keycode any = NOM_KEYSYM ...
- Si aucune touche existante ne possède cette liste de
keysyms, une touche libre sur le clavier est sélectionnée et les
keysyms lui sont assignés. La liste des keysyms peut être
spécifiée en décimal, hexadécimal ou octal.
- keysym NOM_KEYSYM = NOM_KEYSYM
...
- Le NOM_KEYSYM de gauche est traduit en keycodes
utilisés pour effectuer l'ensemble des expressions keycode
correspondantes. Remarquez que si le même keysym est lié à
plusieurs touches, l'expression est exécutée pour chaque keycode
correspondant.
- clear NOM_MODIFICATEUR
- Efface toutes les entrées dans la table de
modificateurs pour le modificateur donné, où les noms pris en
charge sont : Shift, Lock, Control, Mod1,
Mod2, Mod3, Mod4 et Mod5 (la casse n'a pas
d'importance dans le nom des modificateurs bien qu'elle en ait pour tous
les autres noms). Par exemple, « clear Lock » effacera
toutes les touches qui étaient liées au modificateur de
verrouillage en majuscule.
- add NOM_MODIFICATEUR = NOM_KEYSYM
...
- Ajoute toutes les touches contenant les keysyms donnés
à la table de modificateurs indiquée. Les noms des keysyms sont
évalués après la lecture de toutes les expressions
d'entrée pour rendre plus facile l'écriture d'expressions
d'échange de touches (voir la section EXEMPLES).
- remove NOM_MODIFICATEUR =
NOM_KEYSYM ...
- Cela supprime toutes les touches contenant les keysyms
donnés de la table du modificateur indiqué. Contrairement à
add, les noms des keysyms sont évalués au moment où
la ligne est lue. Cela permet de supprimer des touches d'un modificateur
sans avoir à se soucier de leur ré-assignement.
- pointer = default
- Cela repositionne la table du pointeur aux réglages
par défaut (le bouton 1 génère un code 1, le bouton 2
génère un 2, etc.).
- pointer = NOMBRE ...
- Configure la table du pointeur de telle manière
qu'elle contienne les codes boutons indiqués. La liste commence
toujours avec le premier bouton physique. La configuration d'un code
bouton à 0 désactive les événements de ce bouton.
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.
EXEMPLES¶
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 ente 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
ENVIRONNEMENT¶
- DISPLAY
- pour avoir l'hôte par défaut et le numéro du
display.
VOIR AUSSI¶
X(7x),
xev(1),
setxkbmap(1),
XStringToKeysym(3), la documentation
Xlib
sur les touches et les événements du pointeur
BOGUES¶
Chaque fois qu'une expression
keycode est évaluée, le serveur
génère un événement
MappingNotify sur chaque
client. Cela peut causer quelques crash. Tous les changements devraient
être groupés et exécutés ensembles. Les clients qui
reçoivent une entrée clavier et ignorent les événements
MappingNotify ne serons pas prévenus des changement 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.
AUTEUR¶
Jim Fulton (MIT X Consortium) ré-écrit à partir d'une
précédente version de David Rosenthal (Sun Microsystems).
TRADUCTION¶
Cette page de manuel a été traduite par Cyril Guilloud
<guilloud@lautre.net> en 2002.
La version présente dans Debian est dorénavant maintenue par les
membres de la liste <debian-l10n-french AT lists DOT debian DOT org>.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le
paquet manpages-fr-extra.