
XKB 对移位级别使用以下方案(如在各种/usr/share/X11/xkb/
文件中可以看到的):
- level_name[Level1] = "基础";
- level_name[Level2] = "Shift";
- level_name[Level3] = "替代基地";
- level_name[Level4] = "Shift Alt";
- level_name[Level5] = "X";
- level_name[Level6] = "X 平移";
- level_name[Level7] = "X Alt 基础";
- level_name[Level8] = "X Shift Alt";
即基于 1 的编号(这个特定列表来自/usr/share/X11/xkb/types/level5
定义)。但看起来从 0 开始的编号更有意义,例如:
- level_name[Level0] = "基础";
- level_name[Level1] = "Shift";
- level_name[Level2] = "替代基地";
- level_name[Level3] = "Shift Alt"; (即1+2)
- level_name[Level4] = "X";
- level_name[Level5] = "X 平移"; (1 + 4)
- level_name[Level6] = "X Alt 基础"; (2 + 4)
- level_name[Level7] = "X Shift Alt"; (1 + 2 + 4)
即像一个位字段。相反,他们使用从 1 开始的编号。选择背后的原因是什么?从 0 开始的编号似乎在 Linux 世界中很常见,在这种特殊情况下,它是明智且直观的。