禁用笔记本内置键盘,防止误触

起因

在 B 站看到一期视频禁用笔记本内置键盘,感觉手动操作还是有一点麻烦,所以写了一个小的 shell 脚本,在 zsh 中设置 alias 别名使用,但还是觉得有一些麻烦,改进了第二版,对是否插着外接键盘进行判断,再进行禁用,第三版目标,实现自动化

第一版

1
2
3
#/usr/bin/bash
id=$(xinput | grep AT | cut -c53-54)
xinput set-prop $id "Device Enabled" 0

第二版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#/usr/bin/bash
#echo $1
if [ $1 == "disable" ]
then
usbkeyboard=''
usbkeyboard=$(xinput | grep "USB Keyboard" | sed -n '2p')
if [ -n "$usbkeyboard" ]
then
echo "USB Keyboard Plugged"
id=$(xinput | grep AT | cut -c53-54)
xinput set-prop $id "Device Enabled" 0
echo "Inner Keyboard disabled"
else
echo " USB Keyboard NOT Plugged,please check!"
fi
elif [ $1 == "enable" ]
then
id=$(xinput | grep AT | cut -c53-54)
xinput set-prop $id "Device Enabled" 1
echo "Inner Keyboard enabled"
fi

第三版

使用 udev 规则进行触发脚本

参考文章

Linux Udev

udev 的使用

通过udev自动检测外置键盘并开启关闭内置键盘

外接鼠标禁用触摸板