在 Ubuntu 上将 CapsLock 绑定到 Control

在 Ubuntu 上将 CapsLock 绑定到 Control

我在谷歌上搜索了这个话题,很多人建议

setxkbmap -option ctrl:nocaps

我把这一行放入我的.bashrc.但是,此键绑定通常会自动禁用。当我做其他事情时,这种情况会随机发生。当我使用vim时,这是最烦人的,很多键映射都受到影响。我需要打开一个终端来重新运行之前的命令,这将使其在另一个随机时间段内工作,直到再次停用。

有没有人分享同样的经历?如何永久拥有这个映射?


我终于发现每次更改输入引擎时 ibus 都会重置键映射。

答案1

只是澄清一下:这只适用于 X11,对吗?

每次启动终端时,它不会映射密钥。它不是终端本身配置的一部分,而是 X 的配置的一部分。

创建文件~/.Xmodmap并添加以下内容:

remove Lock = Caps_Lock
keysym Caps_Lock = BackSpace

这会将 CapsLock 映射到 Backspace。

当然,如果需要,您可以将其绑定到 Control。

来自评论:请注意,ibus 可以在更改输入时重置此配置。

答案2

供您参考,我正在尝试解决此问题,并在另一个线程中提出了我的解决方案 将 Caps Lock 映射到 Linux Mint 中的控制

答案3

是的,我也遇到了同样的问题,“setxkbmap -option ctrl:nocaps”突然停止工作。

以下命令永久地重新映射按键并在我的笔记本电脑上正常工作:

sudo setkeycodes 3a 29

如果扫描码 (3a) 或键码 (29) 不同,您可以使用以下方法找到正确的:

sudo evtest

但由于某种原因,这不适用于 USB 键盘。以下适用于 USB 键盘: https://github.com/stefansaraev/keytable

git clone https://github.com/stefansaraev/keytable.git
cd keytable/
make
sudo ./keytable -k 0x70039=29 --device /dev/input/event5

按照与之前相同的方式获取正确的设备、扫描码 (70039) 或键码 (29)。一些参考:

相关内容