![xkb 符号文件中的 EIGHT_LEVEL_ALPHABETIC 和 EIGHT_LEVEL 有什么区别?](https://linux22.com/image/189423/xkb%20%E7%AC%A6%E5%8F%B7%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20EIGHT_LEVEL_ALPHABETIC%20%E5%92%8C%20EIGHT_LEVEL%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
标题说明了一切。两者之间有什么区别?在创建自定义八层布局时,何时应该选择其中之一?
对于上下文,这里是xkb 符号文件partial alphanumeric_keys xkb_symbols "T3"
的摘录。de
key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC";
key <AB01> { [ y, Y, U203A, NoSymbol, U0292, U01B7, guillemotleft, NoSymbol ] };
key <AB02> { [ x, X, guillemotright, NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright, NoSymbol ] };
key <AB03> { [ c, C, copyright, NoSymbol, cent, copyright, Greek_horizbar, NoSymbol ] };
key <AB04> { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] };
key <AB05> { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] };
key <AB06> { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] };
key <AB07> { [ m, M, Greek_mu, NoSymbol, mu, masculine, emdash, NoSymbol ] };
key.type[Group1] = "EIGHT_LEVEL";
key <AB08> { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] };
key <AB09> { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] };
key <AB10> { [ minus, underscore, hyphen, NoSymbol, U0140, U013F, U2011, NoSymbol ] };
答案1
经过一些测试并查看这些级别的定义后,不同之处在于,类型ALPHABETIC
锁定到第二级,而只有按下时才能达到CAPS LOCK非第二级。ALPHABETIC
SHIFT
请参阅 的以下部分/usr/share/X11/xkb/types/level5
。只有在ALPHABETIC
你才能找到map[Lock] = Level2;
,map[Lock+LevelFive] = Level6;
等等......
type "EIGHT_LEVEL" {
modifiers = Shift+LevelThree+LevelFive;
map[None] = Level1;
map[Shift] = Level2;
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[LevelFive] = Level5;
map[Shift+LevelFive] = Level6;
map[LevelThree+LevelFive] = Level7;
map[Shift+LevelThree+LevelFive] = Level8;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
level_name[Level5] = "X";
level_name[Level6] = "X Shift";
level_name[Level7] = "X Alt Base";
level_name[Level8] = "X Shift Alt";
};
type "EIGHT_LEVEL_ALPHABETIC" {
modifiers = Shift+Lock+LevelThree+LevelFive;
map[None] = Level1;
map[Shift] = Level2;
map[Lock] = Level2;
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Lock+LevelThree] = Level4;
map[Lock+Shift+LevelThree] = Level3;
map[LevelFive] = Level5;
map[Shift+LevelFive] = Level6;
map[Lock+LevelFive] = Level6;
map[LevelThree+LevelFive] = Level7;
map[Shift+LevelThree+LevelFive] = Level8;
map[Lock+LevelThree+LevelFive] = Level8;
map[Lock+Shift+LevelThree+LevelFive] = Level7;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
level_name[Level5] = "X";
level_name[Level6] = "X Shift";
level_name[Level7] = "X Alt Base";
level_name[Level8] = "X Shift Alt";
};