是否可以添加更多修饰符?

aks*_*ksr 5 xorg xmodmap

我正在使用由键盘控制的简约 WM ..
主要问题是,这可能吗?如何?
例如,Mod6。我知道如何重新映射现有的修饰符,但不知道如何添加新的修饰符。我正在使用 Arch Linux。

Gil*_*il' 6

X 通常有 8 个修饰符,它们都分配有键符。按下一个键会导致与键符相关联的键盘事件。如果键符具有分配给它的修饰符,那么当该键按下时,按键事件将被标记为该修饰符。

修饰符以及常见的键符分配是:

  • Shift: Shift_L,Shift_R
  • LockCaps_Lock
  • Control: Control_L,Control_R
  • Mod1Num_Lock
  • Mod2: Meta_L,Meta_R
  • Mod3: Alt_L,Alt_R
  • Mod4: Hyper_L,Hyper_R
  • Mod5: Super_L,Super_R

Alt/Hyper/Meta/Super/NumLock 在 Mod1-5 之间的分布是任意的;您可能会以不同的顺序找到它们,并且您可能会发现其中一些丢失了。

使用标准 X 库可以获得 8 个修饰符,有些应用程序甚至不允许您获得所有修饰符。其中两个 (ShiftLock) 具有固定含义,在键入字符时,您不太可能在没有令人讨厌的副作用的情况下进行覆盖。

但是,大多数键盘事件处理是在客户端(即在每个应用程序内部)处理的。因此,特定应用程序可能会让您处理更多修饰符。执行此操作的方法将特定于该应用程序(或至少特定于它用于事件处理的库或框架)。

  • 由于事件中的 8 位修饰符状态字段,8 个修饰符是 X11 核心协议允许的全部。支持更多功能的应用程序或工具包必须自己跟踪是否按下了修饰键,而不是依靠事件来告诉它们(不难,只是不是普通的修饰符处理代码)。 (6认同)