我正在使用由键盘控制的简约 WM。
主要问题是,这可能吗?如何?
例如,Mod6
。我知道如何重新映射现有修饰符,但不知道如何添加新修饰符。我正在使用 Arch Linux。
答案1
X 通常有 8 个修饰符,并为它们分配了键符号。按下某个键会产生与该键符号关联的键盘事件。如果键符号分配有修饰符,那么当该键按下时,按键事件将用该修饰符标记。
修饰符以及常见的键符号分配包括:
Shift
:Shift_L
,Shift_R
Lock
:Caps_Lock
Control
:Control_L
,Control_R
Mod1
:Num_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 个修饰符,而某些应用程序甚至不允许您使用所有修饰符。其中两个 (Shift
和Lock
) 具有固定含义,您在键入字符时不太可能在没有令人讨厌的副作用的情况下覆盖。
然而,大多数键盘事件处理是在客户端处理的(即在每个应用程序内部)。因此,特定的应用程序可能会让您处理更多修饰符。执行此操作的方法特定于该应用程序(或至少特定于它用于事件处理的库或框架)。
答案2
通常 Mod1-Mod5 与 Shift、Control、Alt、Hyper、Super 等命名修饰符组合在一起。
在某些 WM 中,可以将它们分离并将它们用作十种不同的修饰符。并非所有 WM 都配合此操作,但有些会配合。
重要的是你要使用和.xmodmaprc
之类的东西清除各种关联,但不要使用普通样式映射重新组合它们。clear Mod
clear Shift
add Mod2 = Alt_L