AltGr이 키코드 108에서 키코드 92(LVL3)로 다시 매핑되는 이유와 위치는 무엇입니까?

AltGr이 키코드 108에서 키코드 92(LVL3)로 다시 매핑되는 이유와 위치는 무엇입니까?

내 자신의 xkb 프로필을 작성하는 동안 해당 프로필이 제대로 작동하지 않게 만들었습니다 AltGr. 요점: 이 세 줄을 제거하십시오(그 중 하나는 실제로 전체 블록입니다)...

    xkb_keymap {
        xkb_keycodes "whatever" {
            [...]
>>>>        <LVL3> = 92;
            [...]
        };
        [...]
        xkb_symbols "anything" {
            [...]
>>>>        key <LVL3> { [ ISO_Level3_Shift ] };
>>>>        modifier_map Mod5 { <LVL3> };

...문제를 생성하고 다시 추가하면 문제가 사라지고 이제 AltGr다시 예상대로 작동합니다. 문제는 이렇습니다. 제 키보드에는 키 코드 92를 생성하는 키가 없습니다(이것이 제가 처음에 해당 줄을 삭제한 이유입니다). 이제 xev두 개의 키보드를 연결하고(하나는 시스템의 기본 키보드 레이아웃을 사용하여 작동하고 AltGr다른 하나는 손상된 xkb 파일을 사용) 실행하고 두 개의 키로 실행하는 동안 AltGr갑자기 다음 줄을 발견했습니다.

    KeyPress event, serial 53, synthetic NO, window 0x3000001,
        root 0x4b1, subw 0x0, time 2986451693, (63,136), root:(716,408),
        state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
>>>>    XKeysymToKeycode returns keycode: 92
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False

그래서 줄을 다시 추가하려고했습니다.

이제 질문은 이 키가 키코드 92로 다시 매핑되는 이유입니다. 어디서 이런 일이 일어났나요? (내 파일에는 더 이상 해당 키에 대한 정의가 없기 때문에 내 파일은 무죄입니다.)

답변1

나도 오늘 이 문제에 직면했고 이것이 xmodmap 출력의 키 코드 92에 대한 키 코드 줄에 ISO_Level3_Shift가 있는 이유라고 생각합니다.

xmodmap -pk | grep -w 92
     92         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)

또는 더 정확하게는 다음과 같이 다시 매핑됩니다.첫 번째목록의 키코드:

$ xmodmap -pk | grep -i ISO_Level3_Shift
     92         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)
    108         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)
    134         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)

관련 정보