本文:https://wiki.archlinux.org/title/xmodmap#Reassigning_modifiers_to_keys_on_your_keyboard
有一个例子:
clear lock
clear control
add control = Caps_Lock Control_L Control_R
keycode 66 = Control_L Caps_Lock NoSymbol NoSymbol
这将物理映射caps_lock
到功能control
,并将物理映射shift + caps_lock
到功能caps_lock
。我的问题是我不知道这个例子是如何工作的。
我对这些线应该如何工作的直观(但不正确)理解是:
您清除lock
/control
修饰符。我天真地认为这lock
意味着caps lock
但这可能是不正确的。
那么这add control = Caps_Lock Control_L Control_R
意味着“键符号Caps_Lock
Control_L
并将Control_R
触发control
修改器”。
然后最后一行:keycode 66 = Control_L Caps_Lock NoSymbol NoSymbol
应该意味着(在我的脑海中但不是现实中)用键码 66(物理大写锁定键)映射物理键,这样它就可以单独给出 keysym Control_L
(根据前一行触发控制修饰符),并且shift+keycode 66
应该(这就是我感到困惑的地方)也只是触发Caps_Lock
键码,从而触发控制修饰符。
我尝试了多种修改,并得到了意想不到的结果。
我发现 xmodmap 的文档(在联机帮助页和 archwiki 中)非常简洁且没有帮助。
所以我想知道是否有人可以解释这段代码发生了什么。还有control
和修饰符的功能,lock
因为我意识到lock
修饰符不仅仅是大写锁定。
我知道 XKB 是现在推荐的配置工具,并且不鼓励使用 xmodmap 做复杂的事情,所以也许这只是一步太过了。
答案1
读这个Linux:xmodmap 教程,也许这个话题你会更好地理解它。