Sto cercando di trovare un modo per rimappare i tasti della tastiera con forza.
Ho provato ad usare xmodmap e setxkbmap, ma non funzionano per un'applicazione specifica. Tali comandi funzionano per altre normali finestre / applicazioni su X tho.
Penso che l'applicazione potrebbe leggere i dati grezzi della tastiera e ignorare l'input X?
Quindi, come rimappare le chiavi senza usare xmodmap e setxkbmap? se è mai possibile farlo utilizzando alcuni software.
Ho anche provato xkeycaps, xkbcomp, ma non ho provato loadkeys, poiché è in esecuzione su X.
Ho scoperto qui che potevo provare "setkeycodes
, perché dopo aver assegnato il keycode del kernel il pulsante dovrebbe funzionare in xorg" , ma ho anche scoperto che "non puoi usare 'setkeycodes' sulle tastiere USB" , questo è il mio caso (sono interessato al caso qualcuno lo fa funzionare su ps2 perché penso che potrei usare un adattatore).
Questo sembrava promettente "Mappa scancodes a keycodes" , ma dopo alcuni test non è cambiato nulla, eccoli qui:
ho trovato il keycode "36" ("j" key) su vt1 con showkey
ho trovato scancode "7e" (tastiera ".") Su vt1 conshowkey --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 .: non ha funzionato neanche con: KEYBOARD_KEY_7e=j
Altri modi alternativi (di @ vinc17) per trovare le chiavi:
evtest /dev/input/by-id/...
oppure
input-kbd 3
(metti l'indice id trovato ls -l /dev/input/by-id/*
da ex. Event3)
PS .: * Se sei interessato a testare te stesso, il thread correlato per l'applicazione è questo: http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ I problemi I sono uguali: alcune chiavi (KP_Decimal, DownArrow, UpArrow, RightArrow) vengono ignorate e considerate tutte con lo stesso valore lì "0x00"
showkey --scancodes
non mi aspetto gli scancodes udev (i valori sono diversi); l' input-kbd
utilità fornisce gli scancodes corretti.
evtest
utilità dovrebbe anche darti gli scancodes corretti: dopo aver digitato una chiave, dovresti ottenere 2 righe e la prima dovrebbe finire con qualcosa del modulo code 4 (MSC_SCAN), value xxx
, dov'è xxx
lo scancode. Ma il driver per la mia tastiera è difettoso e non ho questa MSC_SCAN
riga per alcuni tasti che volevo rimappare. Ecco perché l'ho usato input-kbd
, che elenca tutti gli scancodes per il dispositivo selezionato.
/etc/udev/hwdb.bin
, non/lib/udev/hwdb.bin
. Ma sebbene questo file sia aggiornato correttamente, non funziona neanche per me, anche dopo un riavvio. Forse manca qualcosa nella documentazione. A proposito di questo: bugs.freedesktop.org/show_bug.cgi?id=82311