| KEYMAPS(5) | File Formats Manual | KEYMAPS(5) |
NOM¶
keymaps — Description des tables du clavier pour loadkeys et dumpkeys
DESCRIPTION¶
Ces fichiers sont utilisés par loadkeys(1) pour modifier les tables de conversion utilisées par le pilote clavier du noyau et générées par dumpkeys(1) à partir de ces tables de conversion.
Le format de ces fichiers est proche de celui accepté par xmodmap(1). Un fichier contient des lignes de définition de jeu de caractères, de touche ou de chaîne intercalées avec des commentaires.
Les commentaires débutent par le caractère « ! » ou « # » et continuent jusqu’à la fin de la ligne. Tout ce qui suit un de ces caractères sur cette ligne est ignoré. Notez que les commentaires ne commencent pas forcément à la première colonne, comme c’est le cas avec xmodmap(1).
La syntaxe des fichiers keymap est orientée ligne ; une définition complète doit tenir dans une seule ligne logique. Les lignes logiques peuvent cependant être partagées en plusieurs lignes physiques en terminant chacune de ces dernières par une controblique (\).
FICHIERS INCLUS¶
Un fichier keymap peut inclure d’autres fichiers keymap en utilisant la syntaxe
DÉFINITION D’UN JEU DE CARACTÈRES¶
Une ligne de définition de jeu de caractères est de la forme :
charset "iso-8859-x"
Cette ligne définit la manière dont les symboles de touche (« keysyms ») suivants doivent être interprétés. Par exemple, en iso-8859-1, le symbole mu (ou micro) a pour code 0265, alors qu’en iso-8859-7, il a pour code 0354.
DÉFINITION COMPLÈTE D’UN « KEYCODE »¶
Chaque ligne de définition complète d’une touche est de la forme :
keycode numéro_touche = keysym keysym keysym...
numéro_touche est le numéro d’identification interne de la touche, à peu près équivalent à son « scan code ». numéro_touche peut être spécifié en notation décimale, octale ou hexadécimale. Un zéro au début indique une notation octale et le préfixe « 0x » une notation hexadécimale.
Chaque keysym représente une action du clavier ; il est possible d’associer jusqu’à 256 actions à une seule touche. Les actions comprennent l’affichage de caractères ou de séquences de caractères, la commutation de console ou de mappage clavier, le redémarrage de la machine, etc. La liste complète des actions peut être obtenue à l’aide de la commande dumpkeys -l .
Chaque keysym peut être préfixé d’un plus (« + »), auquel cas ce keysym sera traité comme une lettre capitale et donc affecté par la touche CapsLock de la même manière que par la touche Shift (pour être tout à fait correct, CapsLock inverse l’état de Shift). Les lettres ASCII ('a'-'z' et 'A'-'Z') peuvent être affectées par CapsLock par défaut. Si Shift+CapsLock ne doit pas produire de symbole en minuscule, ajouter des lignes du style
keycode 30 = +a A
dans le fichier de mappage.
Parmi les actions liées à une touche donnée, celle qui est sélectionnée lorsque cette dernière est enfoncée dépend des modificateurs activés au même moment. Le pilote du clavier prend en charge 9 modificateurs. Ces modificateurs se nomment (de manière tout à fait arbitraire) Shift, AltGr, Control, Alt, ShiftL, ShiftR, CtrlL, CtrlR et CapsShift. Chacun d’entre eux est associé à un poids correspondant à une puissance de deux comme indiqué dans le tableau suivant :
- modificateur
- poids
Shift 1
AltGr 2
Control 4
Alt 8
ShiftL 16
ShiftR 32
CtrlL 64
CtrlR 128
CapsShift 256
L’action effective d’une touche est déterminée par la somme des poids de tous les modificateurs activés. Par défaut, aucun modificateur n’est activé, c’est donc l’action numéro zéro qui est sélectionnée quand la touche est enfoncée ou relâchée, c’est-à-dire celle qui est dans la première colonne de la ligne de définition de la touche. Par exemple, quand les modificateurs Shift et Alt sont activés, c’est l’action numéro neuf (celle de la dixième colonne) qui est sélectionnée.
Modifier l’état des modificateurs activés peut être effectué en associant les actions de touche appropriées aux touches souhaitées. Par exemple, associer le symbole Shift à une touche active le modificateur Shift lorsque cette touche est enfoncée et le désactive lorsqu’elle est relâchée. Associer le symbole AltGr_Lock à une touche active le modificateur AltGr lorsque cette touche est enfoncée et le désactive lorsqu’elle est enfoncée à nouveau (par défaut, Shift, AltGr, Control et Alt sont associés aux touches qui possèdent une étiquette similaire ; AltGr peut être associé à la touche Alt droite).
Notez que vous devez être très prudent lors de l’association des touches modificatrices, sous peine de vous retrouver devant un mappage clavier inutilisable. Par exemple, si vous définissez une touche avec Control en première colonne et affectez les suivantes avec « VoidSymbol », vous allez au-devant de problèmes. En effet, enfoncer la touche active le modificateur Control et les actions suivantes seront recherchées à partir de la cinquième colonne (voir le tableau ci-avant). Ainsi, lorsque vous relâchez la touche, l’action sélectionnée est celle de la cinquième colonne qui contient « VoidSymbol », si bien que rien ne se passe. Cela signifie que le modificateur Control est toujours activé, bien que vous ayez relâché la touche. Enfoncer et relâcher à nouveau la touche n’aura aucun effet. Pour éviter ce problème vous devez toujours définir toutes les colonnes avec le même symbole de modificateur. Pour ce faire, il existe une notation raccourcie commode (voir ci-après).
Les keysyms peuvent être spécifiés en notation décimale, octale, hexadécimale, unicode ou symbolique. Les notations numériques utilisent le même format que pour keynumber. Le format de la notation unicode est « U+ » suivi de quatre chiffres hexadécimaux. La notation symbolique ressemble à celle utilisée par xmodmap(1), mais il existe de notables différences entre les symboles numériques. Les symboles numériques « 0 », « 1 », ..., « 9 » de xmodmap(1) sont remplacés par les mots correspondants « zero », « one », ..., « nine » pour éviter une confusion avec la notation numérique.
Il est à noter que l’utilisation de la notation numérique pour les keysyms a une portabilité très faible, car les numéros d’action de touche peuvent varier d’une version du noyau à l’autre, et l’utilisation de cette notation est donc fortement déconseillée. Elle ne doit être utilisée que lorsque vous savez qu’il existe une action clavier prise en charge par votre noyau pour laquelle votre version actuelle de loadkeys(1) ne possède pas de nom symbolique.
Il existe plusieurs notations raccourcies plus lisibles et réduisant le travail de saisie et la probabilité d’erreurs de saisie.
Premièrement, vous pouvez insérer une ligne de spécification de correspondances de la forme
keymaps 0-2,4-5,8,12
pour indiquer que les lignes du fichier keymap ne spécifient pas la totalité des 256 colonnes, mais seulement celles indiquées. Dans cet exemple, seules les correspondances sans modificateur, Shift, AltGr, Control, Control+Shift, Alt et Control+Alt sont spécifiées, c’est-à-dire 7 colonnes au lieu de 256. Si aucune ligne de ce type n’est indiquée, les correspondances de touche 0-M seront définies, où M+1 correspond au nombre maximal d’entrées trouvées dans toute ligne de définition.
Deuxièmement, vous pouvez supprimer toutes les entrées « VoidSymbol » en fin de ligne de définition de touche. « VoidSymbol » représente une action du clavier qui ne produit aucune sortie et n’a aucun autre effet. Par exemple, pour définir les correspondances de la touche numéro 30 de façon qu’elle affiche « a » sans modificateur Shift et « A » avec le modificateur Shift activé et qu’elle n’ait aucun effet si elle est enfoncée avec AltGr ou un autre modificateur, vous pouvez indiquer
keycode 30 = a A
au lieu de la ligne plus verbeuse
keycode 30 = a A VoidSymbol VoidSymbol \ VoidSymbol VoidSymbol VoidSymbol ...
Pour plus de commodité, vous pouvez généralement vous contenter de définitions encore plus succinctes. Indiquer une ligne de définition de touche avec un et un seul code d’action après le signe « = » revêt une signification spéciale. Si le code (numérique ou symbolique) ne correspond à aucune lettre ASCII, cela signifie qu’il est implicitement répliqué dans toutes les colonnes définies. Par contre, si le code d’action est une lettre ASCII de « a » à « z » ou de « A » à « Z » dans l’ordre de codage ASCII, les définitions suivantes sont effectuées pour les différentes combinaisons de modificateurs, sous réserve qu’elles soient effectivement définies. La table indique les deux cas possibles : le code d’action unique est soit une lettre minuscule représentée par « x », soit une lettre capitale représentée par « Y ».
- modificateur
- symbole
- aucun
- x Y
- Shift
- X y
- AltGr
- x Y
- Shift+AltGr
- X y
- Control
- Control_x Control_y
- Shift+Control
- Control_x Control_y
- AltGr+Control
- Control_x Control_y
- Shift+AltGr+Control
- Control_x Control_y
- Alt
- Meta_x Meta_Y
- Shift+Alt
- Meta_X Meta_y
- AltGr+Alt
- Meta_x Meta_Y
- Shift+AltGr+Alt
- Meta_X Meta_y
- Control+Alt
- Meta_Control_x Meta_Control_y
- Shift+Control+Alt
- Meta_Control_x Meta_Control_y
- AltGr+Control+Alt
- Meta_Control_x Meta_Control_y
- Shift+AltGr+Control+Alt
- Meta_Control_x Meta_Control_y
DÉFINITIONS DE MODIFICATEUR UNIQUE¶
Toutes les formes de ligne de définition de touche précédentes définissent toujours les M+1 combinaisons possibles de modificateurs définies, que la ligne contienne effectivement autant de codes d’action ou non. Il existe cependant une variante de la syntaxe de définition pour associer des actions uniques à une combinaison particulière de modificateurs d’une touche. Cela s’avère particulièrement utile si vous chargez un mappage de touches qui ne correspond pas à vos besoins pour seulement quelques combinaisons de modificateurs comme les touches AltGr+fonction. Vous pouvez alors écrire un petit fichier local qui ne redéfinit que ces combinaisons de modificateurs et les charge après le fichier principal. La syntaxe de cette forme est :
{ plain | <séquence_modificateur> } keycode numéro_touche = keysym
par exemple,
plain keycode 14 = BackSpace control alt keycode 83 = Boot alt keycode 105 = Decr_Console alt keycode 106 = Incr_Console
DÉFINITIONS DE CHAÎNES¶
En plus des commentaires et des lignes de définition de touche, un fichier keymap peut contenir des définitions de chaînes. Ces dernières permettent de définir ce qu’envoie chaque code d’action d’une touche de fonction. La syntaxe des définitions de chaînes est :
texte peut contenir des caractères littéraux, des codes de caractères en octal selon le format controblique suivie de trois chiffres au maximum en octal, et les trois séquences d’échappement \n, \\ et \" pour nouvelle ligne, controblique et guillemet, respectivement.
DÉFINITIONS DE COMPOSITION¶
Il existe aussi des définitions de compositions. Leur syntaxe est :
ABRÉVIATIONS¶
Différentes abréviations sont disponibles à partir de la version 0.96 de kbd(4).
- strings as usual
- Définition des valeurs habituelles des chaînes (mais pas des touches auxquelles elles sont associées).
- compose as usual for "iso-8859-1"
- Définition des combinaisons compose habituelles.
Pour obtenir les keysyms disponibles dans les fichiers keymap, utilisez la commande
dumpkeys --long-info
Malheureusement, il n’existe actuellement aucune description de l’action associée à chaque symbole. Vous pouvez essayer de la deviner à partir du nom ou la rechercher dans les sources du noyau.
EXEMPLES¶
(Veillez à utiliser une ligne « keymaps », comme la première ligne de dumpkeys(1) ou « keymaps0-15 », par exemple.)
L’entrée suivante échange les touches Control gauche et CapsLock sur le clavier :
keycode 58 = Control keycode 29 = Caps_Lock
Normalement, le numéro de touche 58 correspond à la touche CapsLock et le numéro de touche 29 à la touche Control.
L’entrée suivante définit les touches Shift et CapsLock de manière plus agréable, comme sur les vieilles machines à écrire : enfoncer la touche CapsLock une ou plusieurs fois met le clavier en mode capitales et enfoncer une des touches Shift le remet en mode minuscules :
keycode 42 = Uncaps_Shift keycode 54 = Uncaps_Shift keycode 58 = Caps_On
L’entrée suivante définit l’agencement du pavé d’édition du clavier amélioré pour qu’il se rapproche de celui des terminaux série VT200 :
keycode 102 = Insert keycode 104 = Remove keycode 107 = Prior shift keycode 107 = Scroll_Backward keycode 110 = Find keycode 111 = Select control alt keycode 111 = Boot control altgr keycode 111 = Boot
Voici un exemple permettant d’associer la chaîne « du\ndf\n » à la touche AltGrD. Nous utilisons le code d’action de « réserve » F100 qui n’est normalement associé à aucune touche.
altgr keycode 32 = F100 string F100 = "du\ndf\n"
AUTEURS¶
Andries Brouwer <aeb@cwi.nl>
VOIR AUSSI¶
TRADUCTION¶
La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>
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.
| 24 avril 1998 | kbd |