내 자신의 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)