shell脚本如下:
#!/bin/bash
echo 'xinput list'
xinput list
if [ ! -n "$1" ]; then
echo "用法:./disnbkb.sh [id] [switch on/off]"
echo " [id] : 参考列表中 id=[id]"
echo " [switch on/off] : 1 = switch on, 0 = switch off"
else
echo "指定笔记本键盘id="$1
keyboardId=$1
fi
if [ ! -n "$2" ]; then
iswitch=0
else
iswitch=$2
if [ $2 -eq 1 ]; then
echo ":启用"
elif [ $2 -eq 0 ]; then
echo ":禁用"
else
echo ":未知"
fi
fi
# 有参数才执行,无参数只打印列表
if [ -n "$1" ]; then
xinput set-prop $keyboardId "Device Enabled" $iswitch
fi
上述脚本保存为 didswitch.sh
以Ubuntu为例 ,在终端执行 ./didswitch.sh
,可打印出外设列表如下:
~$ ./didswitch.sh
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=16 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
用法:./disnbkb.sh [id] [switch on/off]
[id] : 参考列表中 id=[id]
[switch on/off] : 1 = switch on, 0 = switch off
要禁用笔记本自带键盘,从上述列表找到 AT Translated Set 2 keyboard(不同笔记本名称可能不同),对应id=13
执行 ./didswitch.sh 13 0
~$ ./didswitch.sh 13 0
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=16 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
指定笔记本键盘id=13
:禁用
执行后笔记本自带的键盘就不可用了,外接键盘再执行一次 ./didswitch.sh 13 1
即可恢复使用。
注意:系统重启禁用的键盘会恢复正常,如要永久禁用则需要设置开机自动运行。