为什么 XKB 移位级别为 1(无)、2(移位)、3(AltGr)、5,而不是 0、1、2、4?

为什么 XKB 移位级别为 1(无)、2(移位)、3(AltGr)、5,而不是 0、1、2、4?

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 世界中很常见,在这种特殊情况下,它是明智且直观的。

相关内容