本文只讲Linux下的方法。
关于把CAPSLOCK映射成ESC键,网上有各种各样的教程。总结起来无非就是三种。
1.在终端启动时执行
把这段代码写进shell的配置文件:
1 | xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' |
然后在打开终端的时候就会自动删除CAPSLOCK并将其换成Esc。这么做需要有xorg-xmodmap这个包才能行。
这种方法有一个缺点: 打开终端时会卡几秒钟(推测是因为要执行xmodmap命令)。
2.在vim启动时执行
把这段代码写入.vimrc中:
1 | au VimEnter * !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' |
这样在启动vim时会把CAPSLOCK换成ESC,在离开vim后会换回来。
不过这样做缺点也很明显: 打开vim时和离开vim时都会卡个几秒钟。同上一样需要xorg-xmodmap。
3.配置Xorg映射表
关于这个映射表是什么,Arch Wiki上有详细的解释: Xmodmap。此时让我们再次高呼Arch Wiki永远滴神。
那么这一步应该干什么?首先复制以下代码:
1 | clear Lock |
然后按照Arch Wiki上推荐的方法,在Home目录下创建一个.Xmodmap文件(为了防止有读者不明白Home目录是啥,先解释以下,Home即是$HOME。如果还不懂,Home即是~。即家目录。而不是/home或者~/home)。
然后把上面的代码复制进~/.Xmodmap里。
然后编辑~/.xinitrc,在里面加入这样一段代码:
1 | if [ -f $HOME/.Xmodmap ]; then |
我来翻译一下: 如果Home目录下存在这个叫做.Xmodmap的文件,那么执行/usr/bin/xmodmap $HOME/.Xmodmap。/usr/bin/xmodmap是xmodmap可执行文件的路径,$HOME/.Xmodmap是参数。所以其实我们也可以在.xinitrc中直接这么写:
1 | xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' |
那么为什么不这样写呢?因为这样写没有逼格。。。
不过同上面的几点一样,想要让这段代码正常执行,你同样需要安装xorg-xmodmap包(毕竟这条命令本身就是依靠xmodmap执行的)。
然后重启xorg,因为.xinitrc是在xorg启动后执行的,所以一定要重启xorg。那么怎么重启xorg呢?直接关机重启就行。。。
重启之后可以按一下CAPSLOCK键,键盘指示灯没有亮起就算成功。
4.使用KDE自带的键位改写
此时,让我们怀着虔诚的心,大声颂扬BugDEKDE的名字。
KDE的设置里,有能够更改CAPSLOCK键功能的功能。其中一条就是CAPSLOCK与ESC键互换。怎么个互换法呢?就是字面上的意思,即ESC变为CAPSLOCK,CAPSLOCK变为ESC。
那么怎么打开这个设置呢?
打开KDE的系统设置,找到”硬件”下的”输入设备”,单击”输入设备”,单击”键盘”,单击”高级”,勾选”配置键盘选项”,找到”大写锁定行为”,打开”大写锁定行为”的下拉列表,找到”交换ESC和大写锁定”,勾选上,单击右下角的”应用”。
然后你的ESC就和CAPS互换了。
不过我也不知道这个方法需不需要xorg-xmodmap这个包。
那么本篇博客的内容到这里就结束了,别看这次的篇幅这么短,写下来可是花费了一番功夫。
也许有的朋友会疑惑我为什么会在HOME那里写的那么详细,这是我怕以后我推荐小白看我的博客时看的稀里糊涂的(绝不是因为我当年就把家目录当成/home和~/home从而勾起了回忆)。
那么,本篇完。