XMODMAP(1) General Commands Manual XMODMAP(1) 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 utilise pour editer et afficher la table des modificateurs du clavier et la table de correspondance utilisees par les applications clientes pour convertir les keycodes (evenements clavier) en keysyms (symboles utilises par les applications clientes). Il est habituellement lance par le script de demarrage de session de l'utilisateur afin d'accorder le clavier a ses propres gouts. OPTIONS Les options suivantes peuvent etre utilisees avec xmodmap : -display affichage Cette option indique l'hote et l'affichage a utiliser. -help Cette option indique qu'une breve description des parametres de la ligne de commande doit etre affichee sur la sortie d'erreur standard. Cela se produit egalement des qu'un parametre incorrect est passe a xmodmap. -grammar Cette option indique qu'un message d'aide decrivant la grammaire des expressions utilisees dans les fichiers et avec l'option -e doit etre affichee sur la sortie d'erreur standard. -version Cette option indique que xmodmap doit afficher les informations de version et quitter. -verbose Cette option (mode prolixe) indique que xmodmap doit afficher les informations de journalisation pendant qu'il analyse ses entrees. -quiet Cette option desactive le mode prolixe. C'est le mode par defaut. -n Cette option indique que xmodmap ne doit pas changer les correspondances mais doit juste afficher ce qu'il doit faire ; de la meme maniere que make(1) quand on lui passe cette option. -e expression Cette option indique une expression a executer. Plusieurs expressions peuvent etre indiquees en ligne de commande. -pm Cette option indique que la table des modificateurs doit etre affichee sur la sortie standard. Il s'agit du mode d'operation par defaut si aucune option ne le change. -pk Cette option indique que la table des correspondances doit etre affichee sur la sortie standard. -pke Cette option indique que la table des correspondances doit etre affichee sur la sortie standard sous la forme d'expressions pouvant etre passees en parametre a xmodmap. -pp Cette option indique que la table du pointeur doit etre affichee sur la sortie standard. - Un tiret seul signifie que l'entree standard doit etre utilisee comme fichier d'entree. nom_de_fichier indique un fichier contenant les expressions devant etre executees par xmodmap. Ce fichier est en general conserve dans le repertoire 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'executer l'une d'entre elles. Cela permet de se referer a des keysyms qui ont ete redefinis d'une facon plus naturelle sans avoir a se preoccuper des conflits de noms. La liste des noms des keysyms peut etre trouvee dans le fichier d'en-tete : (sans le prefix XK_). Les keysyms correspondants a des caracteres Unicode peuvent etre indiques de << U0020 >> a << U007E >> et de << U00A0 >> a << U10FFFF >> pour tous les caracteres Unicode possibles. keycode NOMBRE = NOM_KEYSYM ... La liste des keysyms est assignee au keycode indique (qui peut etre indique en decimal, hexadecimal ou octal et peut etre determine grace au programme xev). Jusqu'a 8 keysyms peuvent etre attaches a une touche, mais les 4 derniers ne sont utilises par aucune implementation majeure de serveur X. Le premier keysym est utilise quand aucune touche de modificateur n'est pressee en meme temps que la touche, le second quand la touche majuscule (Shift) est pressee, le troisieme en combinaison avec la touche Mode_switch (Alt Gr) et le quatrieme en combinaison avec les touches majuscule et Mode_switch. keycode any = NOM_KEYSYM ... Si aucune touche existante ne possede cette liste de keysyms, une touche libre sur le clavier est selectionnee et les keysyms lui sont assignes. La liste des keysyms peut etre indiquee en decimal, hexadecimal ou octal. keysym NOM_KEYSYM = NOM_KEYSYM ... Le NOM_KEYSYM de gauche est traduit en keycodes utilises pour effectuer l'ensemble des expressions keycode correspondantes. Remarquez que si le meme keysym est lie a plusieurs touches, l'expression est executee pour chaque keycode correspondant. clear NOM_MODIFICATEUR Effacer toutes les entrees dans la table de modificateurs pour le modificateur donne, ou 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 etaient liees au modificateur de verrouillage en majuscule. add NOM_MODIFICATEUR = NOM_KEYSYM ... Ajouter toutes les touches contenant les keysyms donnes a la table de modificateurs indiquee. Les noms des keysyms sont evalues apres la lecture de toutes les expressions d'entree pour rendre plus facile l'ecriture d'expressions d'echange de touches (voir la section EXEMPLES). remove NOM_MODIFICATEUR = NOM_KEYSYM ... Supprimer toutes les touches contenant les keysyms donnes de la table du modificateur indique. Contrairement a add, les noms des keysyms sont evalues au moment ou la ligne est lue. Cela permet de supprimer des touches d'un modificateur sans avoir a se soucier de leur re-assignement. pointer = default Repositionner la table du pointeur aux reglages par defaut (le bouton 1 genere un code 1, le bouton 2 genere un 2, etc.). pointer = NOMBRE ... Configurer la table du pointeur de telle maniere qu'elle contienne les codes boutons indiques. La liste commence toujours avec le premier bouton physique. La configuration d'un code bouton a 0 desactive les evenements 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 appropriee. EXEMPLES De nombreux pointeurs (souris) sont concus pour que le premier bouton soit presse avec l'index de la main droite. Les gauchers trouvent generalement qu'il est plus confortable d'intervertir les codes de boutons generes de maniere a ce que le premier bouton soit presse avec l'index de la main gauche. Cela peut etre fait sur une souris a 3 boutons de cette maniere : % xmodmap -e "pointer = 3 2 1" Beaucoup d'applications supportent la notion de touche << Meta >> (equivalente a la touche Control, sauf que la touche Meta reste enfoncee contrairement a la touche Control). Cependant, certains serveurs n'ont pas par defaut de keysym Meta dans la table de correspondance des touches et celui-ci doit donc etre ajoute manuellement. La commande suivante attache Meta a la touche Multi-langage (parfois indiquee par Compose). Cela tire avantage du fait que les applications qui ont besoin d'une touche Meta necessitent simplement d'avoir le keycode et ne requierent pas que le keysym soit dans la premiere 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 defaut) n'y verront aucun changement. % xmodmap -e "keysym Multi_key = Multi_key Meta_L" De la meme maniere, certain claviers ont une touche Alt, mais pas de touche Meta. Dans ce cas, la commande suivante peut etre 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 generer un keysym different. Cela implique generalement d'echanger Backspace avec Delete pour plus de confort d'utilisation. Si la ressource ttyModes dans xterm est positionnee convenablement, toutes les fenetres des emulateurs de terminaux utiliseront la meme touche pour effacer les caracteres : % xmodmap -e "keysym BackSpace = Delete" % echo "XTerm*ttyModes: erase ^?" | xrdb -merge Certains claviers ne generent pas automatiquement les caracteres << plus petit que < >> et << plus grand que > >> quand le point et la virgule sont decales. On peut remedier a cela avec xmodmap en re-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 differences entre les claviers est la position des touches Control et CapsLock. Une utilisation habituelle de xmodmap est d'echanger ces deux touches : ! ! Echanger 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 etre execute une nouvelle fois pour retablir les assignations precedentes des touches. La commande keycode est utile pour assigner le meme keysym a plusieurs keycodes. Bien que non portable, cette methode rend possible l'ecriture de scripts qui peuvent reinitialiser le clavier a un etat connu. Le script suivant definit la touche backspace pour generer Delete (comme vu precedemment), efface tous les liens avec caps lock, fait de la touche CapsLock une touche Control, fait que F5 genere Escape, et fait que Break/Reset soit le verrouillage majuscule. ! ! sur HP, les keycodes suivants sont etiquetes : ! ! 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'hote par defaut et le numero d'affichage. VOIR AUSSI xev(1), setxkbmap(1), XStringToKeysym(3), X(7), la documentation Xlib sur les touches et les evenements du pointeur BOGUES Chaque fois qu'une expression keycode est evaluee, le serveur genere un evenement MappingNotify sur chaque client. Cela peut causer quelque emballement. Tous les changements devraient etre groupes et executes ensemble. Les clients qui recoivent une entree clavier et ignorent les evenements MappingNotify ne seront pas prevenus des changements effectues aux correspondances clavier. Xmodmap devrait generer les expressions << add >> et << remove >> automatiquement quand un keycode deja lie a un modificateur est change. Il devrait y avoir un moyen pour que l'expression remove accepte les keycodes aussi bien que les keysyms pour les fois ou vous cassez vraiment les correspondances. AUTEUR Jim Fulton (MIT X Consortium) re-ecrit a partir d'une precedente version de David Rosenthal (Sun Microsystems). TRADUCTION La traduction francaise de cette page de manuel a ete creee par Jose JORGE, Cyril Guilloud , Simon Depiets, Gerard Delafond , Bernard Siaud, Nicolas Francois et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . X Version 11 xmodmap 1.0.11 XMODMAP(1)