Est-il possible de remapper les touches Précédent / Suivant d'un clavier USB Thinkpad sous Linux?

8

Sur mon ordinateur portable Thinkpad, je peux facilement changer les touches Précédent / Suivant en autre chose (je les mappe généralement sur PageDown / PageUp), car elles ont leur propre code clé (166 et 167):

xmodmap -e 'keycode 166=Prior'
xmodmap -e 'keycode 167=Next'

Cependant, sur mon clavier USB Thinkpad, les touches Précédent / Suivant semblent être mappées en dur à Alt + Gauche et Alt + Droite, respectivement, donc je ne peux pas utiliser xmodmap pour les remapper. Existe-t-il un autre moyen de les remapper? J'ai déjà essayé la xautomation, mais cela n'a pas fonctionné.

Voici ce que 'xev' me montre lorsque j'appuie sur la touche Suivant:

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x8, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Guilherme Salgado
la source
1
Si les clés ont un code de clé, elles peuvent être remappées à droite? Est-ce différent de la clé de verrouillage des majuscules? Cette page le remappe bien semble-t-il. Je ne l'ai pas essayé. Je suggère juste. efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas
Le problème est exactement qu'il n'a pas de code clé et qu'il est câblé à la place alt-gauche / alt-droite
Guilherme Salgado

Réponses:

0
  1. Installer xdotool
  2. Créez un script ou un alias shell pour la commande keypress que vous souhaitez exécuter ( xdotool key --clearmodifiers Page_Down)
  3. Liez ce script / alias au combo envoyé (Alt + Gauche) dans la configuration Hotkey / Shortcut de votre environnement de bureau.

Notez que dans gnome-control-center, il ne semble pas possible d'affecter les boutons Précédent / Suivant du clavier USB à un raccourci (vous pouvez en fait les affecter, mais la commande / action que vous y avez affectée ne sera jamais appelée / arrive), vous devrez donc peut-être utiliser autre chose, comme le plugin Commiz de compiz.

SleighBoy
la source
1
Merci pour la suggestion @sleighboy. J'avais essayé avec xautomation , mais cela n'a pas fonctionné. Voir ma propre réponse, ci-dessous, pour savoir pourquoi
Guilherme Salgado
1
En fait, cela devrait être la réponse finale et je vais simplement expliquer ici pourquoi cela n'a pas fonctionné. La commande à exécuter devrait être xdotool key --clearmodifiers Page_Upet pour une raison quelconque, attribuer le bouton Précédent / Suivant comme accélérateur d'un raccourci sur gnome-control-center ne semble pas fonctionner, mais si vous utilisez le plugin compiz '' Commands '' cela fonctionnera.
Guilherme Salgado
0

Je mets ceci dans mon .bashrc:

# this maps the previous and next page buttons to pgup and pgdown 
xmodmap -e "keycode 167 = Next" 
xmodmap -e "keycode 166 = Prior"

fonctionne très bien, mais ne semble pas le couper dans virtualbox 6 pour une raison quelconque.

Stu
la source