我打算在非常规的 8 级德国 Neo2 布局中添加一个额外的级别,以便在按下控制修饰符时将按键重定向到 QWERTY。
虽然我不认为 9 个级别不起作用,但知道最大级别数会让人放心。
我在某处读到,状态/级别/类型信息被位掩码为 32 位数据(这确实是 的十六进制输出xev
)。
所有这些 32 位都用于传达电平信息吗?
编辑:我将这个 2 位十六进制数(应该是修饰键的最大数量)与最大级别数(修饰键组合)混为一谈。此信息不应与我的问题相关。
即类似以下内容。因为我昨天开始学习XKB,还没有遇到过超过8级的类型。
type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
// [...]
// + map[Control]= Level0;
level_name[Level0] = "QWERTY shortcuts"
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";
};
所有引用均来自X 键盘扩展:库规范
给定密钥类型的总级别数
XkbKeyTypeRec
以无符号字符形式保存在某种结构中:(num_levels
第 140 页)理论上,最大级别数限制为 255(从 1 开始)
然而,由于每个设计中每个键的符号数量限制为 255 个,并且最多可以有四组……,因此实际限制除以四:63,正如我们在第 127 页上看到的那样
顺便说一句,如果您想更改给定按键类型的级别数,请使用
XkbResizeKeyType
(第 145 页):