2 votes

Mappage des touches sous Linux

Je souhaite modifier la mise en page (cartographie) de Clavier Lenovo ThinkPad (que je déteste) d'être comme Acer TravelMate 8000 (que j'adore).

Cela signifie principalement :

  • Permuter Fn et Ctrl gauche
  • Tab-gauche pour agir comme PgUp
  • Fn' + Tab-gauche pour agir comme Home
  • Tab-droit pour agir comme PgDown
  • Fn' + Tab-droit pour agir comme End
  • PgUp pour agir comme Delete
  • Accueil pour agir comme Insert

J'ai essayé xev pour voir les codes.
J'ai trouvé cette liste de symboles : http://cs.gmu.edu/~sean/stuff/n800/keyboard/keysymdef.h
Voici mon résultat :

xmodmap -e 'keycode 112 = XF86Back'     # Remap PgUp to TabPrev
xmodmap -e 'keycode 117 = XF86Forward'  # Remap PgDn to Tabnext
xmodmap -e 'keycode 166 = Prior Home XF86Back'        # Remap TabPrev to PgUp.
xmodmap -e 'keycode 167 = Next End XF86Forward'       # Remap TabNext to PgDn.
xmodmap -e 'keycode 151 = Control_L'    # Remap FN to be Ctrl.
xmodmap -e 'keycode  37 = XF86WakeUp'   # Remap Ctrl to be FN.
xmodmap -e 'keycode  94 = Shift_L'      # Remap stupid left |\*& to be Shift too.

Cependant, ce n'est pas exactement ce dont j'ai besoin car il associe Shift + Tab* à Home, ce qui m'empêche d'utiliser la fonction Shift + Home' (pour sélectionner du texte) et ne fonctionne que dans certaines applications (par exemple, il ne fonctionne pas dans Firefox pour aller en haut).

Alors - comment dois-je le cartographier ?


Mise à jour : J'ai utilisé setkeycodes et j'ai trouvé ces scancodes :

                 Press            Release
TabLeft  - 158   ^[[5~0xe0 0x6a   0xe0 0xea 
TabRight - 159   ^[[6~0xe0 0x69   0xe0 0xe9
PgUp:            0xe0 0x49        0xe0 0xc9 
PgDn:            0xe0 0x51        0xe0 0xd1 

Ctrl:            0x1d             0x9d 
FN:              0xe0 0x63        0xe0 0xe3

Mise à jour : J'ai également constaté que dumpkeys montre des informations intéressantes. Par exemple, les alias des chaînes de caractères pour certaines clés. ^[[5~ montré par showkey -s y est défini.


Mise à jour : J'ai essayé setkeycodes :

sudo setkeycodes 0xE063  29  ##  Fn   to Ctrl
sudo setkeycodes 0x1d   143  ##  Ctrl to Fn
sudo setkeycodes 0x56    42  ##  |\*& to Shift

showkeys -k montre les bons keycodes qui arrivent, mais ils ne fonctionnent toujours pas donc - e.g. Ctrl+T n'ouvre pas d'onglet dans FF, etc.
Après avoir annulé les changements, tout fonctionne comme avant.

sudo setkeycodes 0xE063 143  ##  Fn   to Ctrl
sudo setkeycodes 0x1d    29  ##  Ctrl to Fn

Qu'est-ce qui me manque ?

2voto

C.Priest Points 21

Je suis tombé sur ce post en cherchant à savoir où en était le problème des codes de touche > 128 qui ne pouvaient pas être mappés comme touche de modification. La dernière fois que j'ai vérifié, c'était la raison pour laquelle je ne pouvais pas permuter fn/ctrl.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X