因为我的键盘布局上CapsLock
有键码,所以命令66
English_US
xmodmap -e "clear Lock" -e "keycode 66 shift = Delete BackSpace"
变成CapsLock
钥匙Delete
,又Shift+CapsLock
变成BackSpace
。
如果我想交换CapsLock
和的Shift+CapsLock
映射
xmodmap -e "clear Lock" -e "keycode 66 shift = BackSpace Delete"
然后Shift+CapsLock
不会删除光标下的字符,而是发出错误铃声。尽管xev
显示正确的键符号Delete
已传递给 X。为什么?
答案1
如果
key <CAPS> { [ NoSymbol, Delete ] };
在 ~/.Xkbmap 中,然后<Shift-CAPS>
发送<SHIFT-DELE>
。
相反,如果
key <CAPS> { actions = [ NoAction(), Redirect(key=<DELE>,clearmods=all) ] };
然后<Shift-CAPS>
发送<DELE>
。
Redirect(...)
对于我来说,此案中采取的行动的必要性仍然是一个谜。