J'ai un ThinkPad W540. Sur son clavier, il y a quatre touches multimédia au-dessus du pavé numérique. Deux de ces clés génèrent des codes clés (et, apparemment, des scancodes) qui correspondent à une combinaison de clés, Win_L+ Let Win_L+ E. En d'autres termes, pour la clé générant Win_L+ L,
showkey --scancodes
renvoie ceci:
0xe0 0x5b 0x26 0xa6 0xe0 0xdb
La setkeycodes
commande nécessite soit des séquences non codées sur un seul octet, soit des séquences échappées de deux octets pour indiquer les codes de balayage et showkey
me donne bien plus que cela. Par conséquent, je ne peux pas vraiment mapper cette clé sur l'un des codes de clé libres de mon système setkeycodes <scancode> <keycode>
.
J'apprécierais vraiment toutes les astuces permettant de remapper cette touche sur une autre fonction qui ne duplique pas simplement l'une des combinaisons de touches existantes sur mon clavier.
la source
/etc/acpi/events
de l'acpid
emballage et en définissant simplement une action lorsque ces touches de fonction étaient enfoncées.Réponses:
Vous pouvez le faire en deux étapes:
Vous pouvez utiliser
xchainkeys
pour 1. et[xdotool][2]
pour 2 .:Pour créer la nouvelle clé simulée avec
xdotool
, l'option--clearmodifiers
dekey
peut être importante pour neutraliser le modificateur d'origine simulé, appuyez sur:Cela devrait taper une capitale
A
comme test.Dans la configuration de
xchainkeys
in~/.config/xchainkeys/xchainkeys.conf
, nous pouvons lier la commande à une combinaison de touches:Maintenant, la combinaison de touches
Win
etl
(Win
gauche ou droite font la même chose), ainsi que la clé qui génère Win_L + L, devrait créer un capitalA
.(Il existe de nombreux autres programmes disponibles pour les deux parties. Pour le premier, on pourrait utiliser la configuration des touches de raccourci d'un environnement de bureau, mais je préfère le garder indépendant des DE.)
la source
Win-Shift-l
Mais vous pouvez aussi mapper des chaînes de combinaisons de touches à une commande. CommeWin-a
et après çab
. Sans leWin-a
,b
se comporte normalement. C'est de loin la caractéristique la plus utilexchainkeys
et assez unique, je pense.C’est ce que j’ai fait sur mon Thinkpad Yoga afin de relier la clé antislash / pipe à la bonne clé. Parce que pour une raison quelconque, chaque machine virtuelle Linux a interprété la clé de barre oblique inversée \ pipe (\ |) comme la clé inférieure à (<).
Exécutez d'abord la commande:
xev
Appuyez sur la touche désirée pour obtenir le code de la touche que vous souhaitez relier:
Dans cet exemple, le code d'activation est 94 et l'action est "less" mais nous voulons qu'il ait l'action de barre oblique inversée et de barre, aka "pipe".
Remappez le code clé 94 sur la barre oblique inversée et la barre de code aka "tuyau":
Maintenant rendons cela persistant:
Renvoie ce qui suit dans le fichier
~/.Xmodmap
:Ensuite, vous devez créer le fichier suivant pour le rendre persistant:
la source