我很难理解xmodmap clear命令,这里是an example:
keycode 66 = Control_L
clear Lock
add Control = Control_L
keycode 117 = Caps_Lock
add Lock = Caps_Lock
这真是令人费解。
答案 0 :(得分:9)
xmodmap中最重要的是区分键码(键盘上的原始数字),键盘(键最终表示)和修饰符标志,它们是键上的标志(不是键盘符号) ),说“我说的这个东西是换档键应该修改其他键作为换档键”
让我们用这些“类型”
注释你的例子keycode (keycode)66 = (keysym)Control_L
clear (modifier)Lock
add (modifier)Control = (keysym)Control_L
keycode (keycode)117 = (keysym)Caps_Lock
add (modifier)Lock = (keysym)Caps_Lock
现在我们可以更好地了解每一行的作用:
keycode 66 = Control_L
将大写锁定键与控制键的含义相关联(但不作为修饰符)
clear Lock
将删除以前具有Lock
修饰符的任何键的修饰符标志(由代码66代表的大写锁定键很可能具有)
add Control = Control_L
将控制修饰符添加到与keysym Control_L
关联的键(可能是键码66和原始左控制键)
keycode 117 = Caps_Lock
使用键码117分配键作为大写锁定(我不确定117是什么,我的键盘没有。)
add Lock = Caps_Lock
将Lock
修饰符添加回Caps_Lock
keysym,其闪亮的新绑定117键代码。
所以,直接回答你的问题:
1。 Control_L已经映射到66,为什么有必要在第3行添加Control?
您需要使用修饰符和keysym来使修饰键正确地作为修饰符。 (对我来说似乎有点奇怪,但就是这样)
2。当我实际添加Control时,为什么必须清除Lock?
因为与键码66相关联的键仍然会在其上设置Lock
修饰符。修饰符不会被覆盖,你必须清除它们。
3。为什么在我实际添加Caps_Lock之前不清除Lock?
你也可以这样做,它同样可以正常工作,因为Lock
会定位修饰符,当你搞乱键盘时它不会被改变。
xmodmap可能是一个非常令人困惑的野兽配置,这里有一些我试图理解它时使用的链接: