如何禁用特定的击键组合

moj*_*nes 5 keyboard-shortcuts x11 keyboard-layout

我最近一直受到 RSI 的困扰,我正在努力使打字更加自律。我注意到的一件事是我有时(出于习惯)使用迫使我伸展的键组合。

例如,要输入一个open-paren(我经常按住右shift键并用右手按9键。这涉及不舒服地扭动我的手腕。我想训练自己按住左shift键,但很难改掉这个习惯。

是否有应用程序允许我 (1) 禁用右移 + 9 的组合或 (2) 当我点击该特定组合时弹出提醒?我想它必须是跨应用程序工作的东西。

moj*_*nes 1

我发现 xmodmap 是这里的正确解决方案。在.Xmodmap文件中,关闭shift,然后添加右shift作为模式开关,添加左shift作为shift:

clear Shift
keysym Shift_R = Mode_switch
add Shift = Shift_L
Run Code Online (Sandbox Code Playgroud)

现在前几个 keysym 列的顺序是 key、left_shift+key、right_shift+key。对于我的括号示例:

keycode  18 = 9 parenleft 9 parenleft bracketright plusminus bracketright
Run Code Online (Sandbox Code Playgroud)

因为右移现在不再被识别为移位,所以它将停止对所有键起作用,直到您将其放回第三列,例如我想要使用右移而不是左移:

keycode  38 = a a A A ae AE ae
Run Code Online (Sandbox Code Playgroud)

提示:如果你在使用 xmodmap 时搞砸了事情,请运行

setxkbmap
Run Code Online (Sandbox Code Playgroud)

将一切恢复到默认状态。