如何将 Caps Lock 重新映射到 Control,然后禁用 Linux 上的 Left Control?

How to remap Caps Lock to Control, then disable the Left Control on Linux?

我是 VIM 用户,我想将 Caps_Lock 键重新映射到 Left_Control,这样可以更轻松地按下 Control。此外,我还想训练我的手指,所以我需要禁用 Left_Control 键,这迫使我按 Caps_Lock 而不是 Left_Control。

所以这是我在 Linux 上使用 xmodmap 的方法(我的键盘布局是 us):

首先,我将 Caps_Lock 键和 Left_Control 交换为 运行:

$ xmodmap -e "remove Lock = Caps_Lock"  
$ xmodmap -e "remove Control = Control_L"  
$ xmodmap -e "keysym Control_L = Caps_Lock"  
$ xmodmap -e "keysym Caps_Lock = Control_L"  
$ xmodmap -e "add Lock = Caps_Lock"  
$ xmodmap -e "add Control = Control_L"

所以在第一步之后,Caps_Lock 键是 Control,Left_Control 键是 Caps_Lock 键。

然后,我通过 运行 禁用 Left_Control 键:

$ xmodmap -e "remove Control = Control_L"  

但这不管用,我仍然可以将Left_Control用作Caps_Lock。

谁能帮我解决这个问题?

更新: 我通过 找到了解决方案。

我会做什么:

# make Caps Lock key a Control key
$ setxkbmap -option ctrl:nocaps
# disable left Control key
$ xmodmap -e "keycode 37="

您可以通过 xev.

找到 Control_L 键码

或者:

# swap Control with Caps Lock
$ setxkbmap -option ctrl:swapcaps
# disable Caps Lock
$ xmodmap -e "keysym Caps_Lock = NoSymbol"

要在这两种情况下重新启用 Caps LockControl_L

$ setxkbmap -option