언뜻 보면 /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