![xkbの元のキーコードを見つける方法は? [コピー]](https://linux33.com/image/10412/xkb%E3%81%AE%E5%85%83%E3%81%AE%E3%82%AD%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
一見すると、/usr/share/X11/xkb/keycodes/に次のマッピングが含まれているようです。デバイスで報告された元のキーコード、 "showkey --scancodes"コマンドは、次のように返すことができます。スキャンコード。同じことだと思いやすいです。
しかし、彼らは明らかに異なります。showkeys -scancodes
次のLinuxキーコードを確実に返します。Linuxキーコードテーブル16進数に変換されます。 xkbで参照される「元のキーコード」は、常にテーブルにあるものとは異なります。
キーを1例に挙げてみましょう。
showkey --scancodes
0x02
キーコードに戻る1xorgのシンボル名はですが、
<AE01>
元の10
キーコードは確かにではありません0x02
。$grep AE01 /usr/share/X11/xkb/keycodes/evdev <AE01> = 10;
それでは、xkbを設定するときにshowkey --scancodes
適切でないキーの元のキーコードをどのように見つけることができますか?
答え1
プログラムはxev
期待されるキーコードを出力します。あなたの例 1:
KeyPress event, serial 37, synthetic NO, window 0x600001,
root 0xd4, subw 0x0, time 6931965, (284,-10), root:(285,560),
state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
XLookupString gives 1 bytes: (31) "1"
XmbLookupString gives 1 bytes: (31) "1"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x600001,
root 0xd4, subw 0x0, time 6932164, (284,-10), root:(285,560),
state 0x0, keycode 10 (keysym 0x31, 1), same_screen YES,
XLookupString gives 1 bytes: (31) "1"
XFilterEvent returns: False