xmodmap: `Shift+CapsLock` -> `Delete` 返回错误铃声

xmodmap: `Shift+CapsLock` -> `Delete` 返回错误铃声

因为我的键盘布局上CapsLock有键码,所以命令66English_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(...)对于我来说,此案中采取的行动的必要性仍然是一个谜。

相关内容