Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

本文只讲Linux下的方法。

关于把CAPSLOCK映射成ESC键,网上有各种各样的教程。总结起来无非就是三种。

1.在终端启动时执行

把这段代码写进shell的配置文件:

1
xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

然后在打开终端的时候就会自动删除CAPSLOCK并将其换成Esc。这么做需要有xorg-xmodmap这个包才能行。
这种方法有一个缺点: 打开终端时会卡几秒钟(推测是因为要执行xmodmap命令)。

2.在vim启动时执行

把这段代码写入.vimrc中:

1
2
au VimEnter * !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
au VimLeave * !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Caps_Lock'

这样在启动vim时会把CAPSLOCK换成ESC,在离开vim后会换回来。
不过这样做缺点也很明显: 打开vim时和离开vim时都会卡个几秒钟。同上一样需要xorg-xmodmap。

3.配置Xorg映射表

关于这个映射表是什么,Arch Wiki上有详细的解释: Xmodmap此时让我们再次高呼Arch Wiki永远滴神。
那么这一步应该干什么?首先复制以下代码:

1
2
clear Lock
keycode 0x42 = Escape

然后按照Arch Wiki上推荐的方法,在Home目录下创建一个.Xmodmap文件(为了防止有读者不明白Home目录是啥,先解释以下,Home即是$HOME。如果还不懂,Home即是~。即家目录。而不是/home或者~/home)。
然后把上面的代码复制进~/.Xmodmap里。
然后编辑~/.xinitrc,在里面加入这样一段代码:

1
2
3
if [ -f $HOME/.Xmodmap ]; then
/usr/bin/xmodmap $HOME/.Xmodmap
fi

我来翻译一下: 如果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从而勾起了回忆)。
那么,本篇完。

评论



愿火焰指引你