我以为我理解了 XKB,但显然不是......所以首先我有一个问题使我无法调试 XKB:我在一个文件(使用 获取xkbcomp $DISPLAY output.xkb
)中有这样的部分:
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 不能像以前一样工作(其他键不变),基本上当我使用 no modded 时,就像我直接按向下按钮,而在它打印数字之前(数字锁定已启用)。如果我删除_CUS
名称中的 ,那么它会像以前一样工作。
这怎么可能,因为这两种类型应该是相同的?