xkb의 원래 키코드를 찾는 방법은 무엇입니까? [복사]

xkb의 원래 키코드를 찾는 방법은 무엇입니까? [복사]

언뜻 보면 /usr/share/X11/xkb/keycodes/에 다음 매핑이 포함되어 있는 것 같습니다.장치에서 보고된 원래 키코드, "showkey --scancodes" 명령은 다음을 반환할 수 있습니다.스캔 코드. 같은 것이라고 생각하기 쉽습니다.

그러나 그들은 분명히 다릅니다. showkeys -scancodes다음과 같은 Linux 키코드를 안정적으로 반환합니다.Linux 키코드 테이블16진수로 변환됩니다. xkb에서 참조되는 "원래 키코드"는 항상 표에 있는 것과 다릅니다.

키를 1예로 들어 보겠습니다.

  • showkey --scancodes0x02키코드로 반환1
  • xorg에서 기호 이름은 이지만 <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

관련 정보