最近半年笔记本的键盘已经慢慢地开始失灵,经常有些键按不出来,所以就另外买了一把键盘。

不过有时候需要带笔记本出去,所以这样一来还需要带着键盘,为了在把键盘放在笔记本的自带键盘上不会误触到就决定禁用掉自带键盘。

主要使用的工具是 xinput

xinput 是 Linux 下用来管理输入设备的工具,该程序可以在 xorg-xinput 包中找到。常用的一些指令,如:

1
2
3
$ xinput list #列出当前所有的输入设备
$ xinput disable <device id>|<device name> #根据指定的 id 或者设备名禁用该设备
$ xinput enable <device id>|<device name> #根据指定的 id 或者设备名启用该设备
1
2
3
$ xinput list
...
    ↳ AT Translated Set 2 keyboard              id=18   [slave  keyboard (3)]

上面是使用 list 参数后的一部分片段,其中的 AT Translated Set 2 keyboard 就是自带键盘的设备名,后面的 18 就是设备对应的 id。

然后使用 disable 参数以及 id 或者设备名关掉自带键盘就可以了:

1
2
3
$ xinput disable 18
or
$ xinput disable "AT Translated Set 2 keyboard"

不过需要注意的是,在计算机重启之后,设备会被重新启用,为了方便起见,你可以把上面的那条命令写在一个开机脚本里,让它随着计算机启动一同被执行。

下面以 KDE Plasma 桌面说明,不同的桌面可能会有不同的方式:
首先在任意位置创建一个脚本文件,如 ~/script/keyboard.sh,其中包含以下内容:

1
2
#!/bin/bash
xinput disable "AT Translated Set 2 keyboard"

然后在 ~/.config/plasma-workspace/env 下创建 keyboard.sh 的软链接。

1
2
$ cd ~/.config/plasma-workspace/env
$ ln -s ~/script/keyboard.sh keyboard.sh

~/.config/plasma-workspace/env 下存放的脚本文件会在 Plasma 启动前执行。

另外还有一点,设备的 id 并不是固定的,所以在写开机脚本的时候务必使用设备名。


如果在添加为开机脚本之后发现开机后键盘依旧可以正常使用,可以检查一下是否给脚本添加了可执行权限

1
$ chmod +x keyboard.sh