极限配列键盘该怎么办?
如果你也用的是小米的键盘保护壳,你就会发现一个很严重的问题:这个键盘没有Fn那一行的所有键,而且Esc甚至不是独立的。
不过对于这个问题,只要你能接受不太方便的按键位置,其实有很好的方法补救一下,如果你的键盘配列比较极限也可以参考这个文章中的一些方法。
keyd与配置
Linux下有个很好用的东西叫keyd,可以捕获键盘按键并允许自定义一些组合操作,而且它工作在很底层,不用考虑冲突问题。安装keyd
sudo pacman -S keyd usbutils然后我们需要读取一下那个键盘保护壳的id,执行
lsusb输出中会有一个叫做Xiaomi Pad的设备,记住那个xxxx:xxxx的id,这就是我们要找的键盘保护壳。
编写配置文件,执行
sudo nano /etc/keyd/default.conf在文件中输入
[id]
# 替换为实际设备id
xxxx:xxxx
[main]
esc = grave
rightalt = layer(fn)
rightshift = rightshift
rightcontrol = rightcontrol
[fn]
esc = esc
1 = f1
2 = f2
3 = f3
4 = f4
5 = f5
6 = f6
7 = f7
8 = f8
9 = f9
0 = f10
- = f11
= = f12
backspace = delete这样我们就把数字键的一排映射成了完整配列的Fn行,通过右边的Alt来切换,也就是右Alt+1是F1,以此类推,但是这个方法会导致右Alt本身不能用了。不过好在右Alt是个使用频率不高的键,所以几乎没有影响。
其次就是因为把左上角的键固定为了grave/backquote,Esc需要改为Alt+`,不太方便,有一个很常用的解决方案就是把CapsLock映射成Esc,因为大写锁定这个键也几乎没啥用,还占用了那么顺手的一个位置。
接下来我们让keyd立即启动并开机自启
sudo systemctl enable --now keyd为什么我说按键位置可能不舒服,比如你想开TTY,那么就需要按Ctrl+Alt+Fx,而我们的映射方法是Fx=右Alt+x,所以开TTY3就需要同时按住Ctrl+左Alt+右Alt+数字键3,按一下你就知道这个动作有多困难了,如果觉得费力可以尝试把CapsLock作为切换键使用。全网最尊重CapsLock的博主。(我自己的电脑Shift坏了,CapsLock让我改成Shift了。)
注意由于keyd是直接在内核层面进行按键信号拦截,所以实际上我们设置好以后即使没有桌面环境也可以照样用(TTY也能用),所以用这个切换TTY是可以切回来的。非常完美的补救方法。