J'essaie de trouver un moyen de remapper les touches du clavier avec force.
J'ai essayé d'utiliser xmodmap et setxkbmap, mais ils ne fonctionnent pas pour une application spécifique. Ces commandes fonctionnent pour d'autres applications / fenêtres normales sur X tho.
Je pense que l'application peut lire les données brutes du clavier et ignorer l'entrée X?
Alors, comment remapper des clés sans utiliser xmodmap et setxkbmap? s'il est possible de le faire à l'aide d'un logiciel.
J'ai également essayé xkeycaps, xkbcomp, mais je n'ai pas essayé les clés de charge, car il fonctionne sur X.
J'ai trouvé ici que je pouvais essayer setkeycodes
, "car après avoir assigné le code clé du noyau, le bouton devrait fonctionner dans xorg" , mais j'ai aussi trouvé que "vous ne pouvez pas utiliser 'setkeycodes' sur les claviers USB" , c'est mon cas (je suis intéressé par le cas quelqu'un le faire fonctionner sur ps2 car je pense que je pourrais utiliser un adaptateur).
Cela semblait prometteur "Mapper les scancodes aux codes clés" , mais après quelques tests, rien n'a changé, voici:
j'ai trouvé le code clé "36" (touche "j") sur vt1 avec le showkey
scancode "7e" (clavier ".") Sur vt1 avecshowkey --scancodes
$cat >/etc/udev/hwdb.d/90-custom-keyboard.hwdb
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_7e=36
$udevadm hwdb --update #updates file: /lib/udev/hwdb.bin
$udevadm trigger #should apply the changes but nothing happened
$cat /lib/udev/hwdb.bin |egrep "KEYBOARD_KEY_7e.{10}" -ao
KEYBOARD_KEY_7eleftmeta
$#that cat on hwdb.bin did not change after the commands..
Obs .: n'a pas fonctionné non plus avec: KEYBOARD_KEY_7e=j
D'autres moyens alternatifs (par @ vinc17) pour trouver les clés:
evtest /dev/input/by-id/...
ou
input-kbd 3
(mettre l'index id trouvé à ls -l /dev/input/by-id/*
partir de ex. Event3)
PS .: * Si vous êtes intéressé à vous tester vous-même, le fil associé à l'application est le suivant: http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ Les problèmes que je ont sont les mêmes: certaines clés (KP_Decimal, DownArrow, UpArrow, RightArrow) sont ignorées et considérées toutes avec la même valeur là "0x00"
showkey --scancodes
ne donne pas les scancodes que udev attend (les valeurs sont différentes); l' input-kbd
utilitaire donne les scancodes corrects.
evtest
utilitaire devrait également vous donner les scancodes corrects: après avoir tapé une clé, vous devriez obtenir 2 lignes et la première devrait se terminer par quelque chose de la forme code 4 (MSC_SCAN), value xxx
, où xxx
est le scancode. Mais le pilote de mon clavier est bogué, et je n'ai pas cette MSC_SCAN
ligne pour certaines touches que je voulais remapper. C'est pourquoi j'ai utilisé input-kbd
, qui répertorie tous les scancodes pour le périphérique sélectionné.
/etc/udev/hwdb.bin
, non/lib/udev/hwdb.bin
. Mais bien que ce fichier soit correctement mis à jour, cela ne fonctionne pas non plus pour moi, même après un redémarrage. Peut-être que quelque chose manque dans la documentation. À propos de ceci: bugs.freedesktop.org/show_bug.cgi?id=82311