linux – xmodmap clear命令

我很难理解xmodmap clear命令,这里是 an example
keycode 66 = Control_L
    clear Lock
    add Control = Control_L
    keycode 117 = Caps_Lock
    add Lock = Caps_Lock

> Control_L已经映射到66,为什么有必要在第3行添加Control?
>为什么在实际添加Control时必须清除Lock?
>为什么在我实际添加Caps_Lock之前不清除Lock?

这真是令人费解.

解决方法

xmodmap中最重要的是区分键码(键盘上的原始数字),键盘(键最终意味着什么)和修饰符标志,它们是键上的标志(不是键盘符号),说“这句话我说的是shift键应将其他键修改为shift键“

让我们用这些“类型”注释你的例子

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
将大写锁定键与控制键的含义相关联(但不作为修饰符)

清楚锁定
将删除以前具有Lock修饰符的任何键的修饰符标志(由代码66代表的大写锁定键很可能具有)

添加Control = Control_L
将控件修饰符添加到与keysym Control_L关联的键(可能是键码66和原始左控制键)

keycode 117 = Caps_Lock
使用键码117分配键作为大写锁定(我不确定117是什么,我的键盘没有.)

添加Lock = Caps_Lock
将Lock修饰符添加回Caps_Lock keysym,其闪亮的新绑定117键代码.

所以,直接回答你的问题:

1. Control_L has already been mapped to 66,why is it necessary to add Control in line 3?

你需要修饰符和keysym来使修饰键正确地作为修饰符. (对我来说似乎有点奇怪,但就是这样)

2. Why do I have to clear Lock when I am actually adding Control?

因为与键码66相关联的键仍然会在其上设置锁定修饰符.修饰符不会被覆盖,您必须清除它们.

3. Why not clear Lock before I am actually adding Caps_Lock?

你也可以这样做,它同样可以正常工作,因为Lock会定位修饰符,当你搞乱键盘时它不会被改变.

xmodmap可能是一个非常令人困惑的野兽配置,这里是我尝试理解它时使用的一些链接:

> http://cs.gmu.edu/~sean/stuff/n800/keyboard/old.html
> http://www.jwz.org/xkeycaps/man.html
> http://www.in-ulm.de/~mascheck/X11/xmodmap.html

如果有什么我可以尝试更清楚,请告诉我.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...