나는 XKB를 이해한다고 생각했지만 분명히 그렇지 않았습니다. 먼저 XKB를 디버깅하지 못하게 하는 문제가 있습니다. xkbcomp $DISPLAY output.xkb
파일에 다음과 같은 섹션이 있습니다(get 사용).
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[NumLock+LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
먼저 이 유형의 복사본을 만들고 싶었기 때문에 동일한 항목 바로 아래에 다른 제목으로 복사하여 붙여넣었습니다.
type "FOUR_LEVEL_MIXED_KEYPAD_CUS" {
modifiers= Shift+NumLock+LevelThree;
map[Shift+NumLock]= Level1;
map[NumLock]= Level2;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[NumLock+LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
경로를 변경했습니다
key <KP2> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
};
입력하다
key <KP2> {
type= "FOUR_LEVEL_MIXED_KEYPAD_CUS",
symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
};
(즉, 유형 이름만 변경했습니다.)
그런 다음 다음을 사용하여 파일을 다시 로드했는데 xkbcomp output.xkb $DISPLAY
이제 키 2가 이전처럼 작동하지 않습니다(다른 키는 변경되지 않음). 기본적으로 수정 사항을 사용하지 않으면 숫자를 인쇄하기 전에 바로 아래쪽 버튼을 누르는 것과 같습니다(숫자 잠금이 활성화됨). ). _CUS
이름에서을 제거하면 이전처럼 작동합니다.
두 유형이 동일해야 하는데 어떻게 이것이 가능합니까?