Je suis intéressé par le remappage de certaines touches de mon clavier. En particulier, je souhaite maintenir la touche de fonction enfoncée, appuyer sur la touche F1 et déclencher un script. Je sais que xev
est utile pour déterminer quel code de touche est associé à une pression de touche. Par exemple, lorsque j'appuie sur le x
clé, j'obtiens :
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1597243, (-190,43), root:(910,336),
state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
XLookupString gives 1 bytes: (78) "x"
XmbLookupString gives 1 bytes: (78) "x"
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1597363, (-190,43), root:(910,336),
state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
XLookupString gives 1 bytes: (78) "x"
XFilterEvent returns: False
Cela a du sens pour moi.
Cependant, lorsque j'appuie sur Fonction-F1, je ne comprends pas ce qui se passe. Pourquoi appuyer sur Fonction-F1 semble-t-il se comporter comme si j'avais également maintenu le bouton Windows enfoncé et tapé la lettre l
?
xev
sortie lorsque j'appuie sur Fonction-F1 :
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735349, (-157,221), root:(943,514),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735350, (-157,221), root:(943,514),
state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XmbLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
MappingNotify event, serial 41, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735356, (-157,221), root:(943,514),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735357, (-157,221), root:(943,514),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 42, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyRelease event, serial 42, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735463, (-157,221), root:(943,514),
state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
KeyRelease event, serial 43, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735470, (-157,221), root:(943,514),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Lorsque j'appuie sur Fonction-F1 avec une fenêtre de texte ciblée, il tape la lettre l
.
Informations générales :Exécution de Lubuntu 11.10 sur un Toshiba r835. Heureux de fournir des détails supplémentaires qui pourraient être utiles.
MODIFIER :
A titre de comparaison, lorsque je tape Fonction-F12, j'obtiens :
KeyPress event, serial 41, synthetic NO, window 0x2200001,
root 0xae, subw 0x0, time 8369184, (-620,473), root:(480,766),
state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2200001,
root 0xae, subw 0x0, time 8369344, (-620,473), root:(480,766),
state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Je voulais vérifier s'il y avait quelque chose de spécial à propos des touches F1-F12, mais il semble qu'au moins certaines d'entre elles fonctionnent comme je m'y attendais.
Connexes :le son "Dumthe Output" dans Ubuntu 14.04 ?Réponse acceptée :
Lorsque vous dites Fonction-F1, je suppose que vous voulez dire appuyer sur cette drôle de petite touche Fn dans le coin d'un ordinateur portable suivie de la touche F1 en haut à gauche du clavier. Et que vous essayez de mapper l'une des touches supplémentaires comme Sleep que certains claviers d'ordinateur portable ont. Il semble que cette touche appuie littéralement sur plusieurs touches pour vous. D'abord, je vois Win + L comme un combo. Sous Windows, ce raccourci verrouille l'écran, mais ne démarre pas l'économiseur d'écran. Ensuite, je vois un mappage pour XF86ScreenSaver qui pourrait signifier que X voit une sorte de code clé de veille. Je suppose que cette touche du clavier de votre ordinateur portable envoie physiquement ces trois codes de touche Win + L + Sleep pour permettre aux utilisateurs de Windows de verrouiller rapidement l'écran et d'activer l'économiseur d'écran. Je ne suis pas sûr d'un bon moyen de les filtrer. La touche Fn des claviers n'est normalement pas vue par le noyau Linux. Au lieu de cela, il change les codes que le clavier indique au noyau. Lorsque j'essayais d'utiliser une télécommande USB RF PowerPoint avec OOo sous Linux, j'ai découvert que le bouton pour démarrer / arrêter la présentation n'était qu'un contrôle boiteux pour envoyer en alternance les codes de touche F5 et ESC. D'autres boutons étaient tout aussi nuls, comme l'envoi de b pour vider l'écran.