Ubuntu Desktop禁用 开启笔记本触控板
设备 ID
输入一下命令查看设备 id
输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ E-Signal USB Gaming Mouse id=10 [slave pointer (2)] ⎜ ↳ E-Signal USB Gaming Mouse id=11 [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)] ↳ Power Button id=9 [slave keyboard (3)] ↳ HP Truevision HD: HP Truevision id=12 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)] ↳ HP Wireless hotkeys id=15 [slave keyboard (3)] ↳ HP WMI hotkeys id=16 [slave keyboard (3)]
|
找到 TouchPad 那一行,设备 id 为 14;
脚本
新建 touchpad 脚本;
1
| $ sudo vim /{自定义路径}/touchpad.sh
|
touchpad1.sh
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/bash
var=$(xinput list-props 14 | grep "Device Enabled")
if [ ${var:((${#var}-1))} == "1" ];then xinput set-prop 'SynPS/2 Synaptics TouchPad' 'Device Enabled' 0
elif [ ${var:((${#var}-1))} == "0" ];then xinput set-prop 'SynPS/2 Synaptics TouchPad' 'Device Enabled' 1
fi
|
保存退出;
最后,通过 添加系统快捷键 或者 直接运行脚本 来开关触控板,也可以借助开源软件 touchpad-indicator 更好地实现。但是,为了个人为了保持系统简洁,首选使用脚本。
更新:2018/07/21
由于最近系统 upgrade 了,脚本不能自动获取 TouchPad 的 id,google 了一下发现有人写了一个更自动化的脚本,接近 touchpad-indicator 的功能,在这里贴上。
touchpad2.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #!/bin/bash
# 如果检测到有外接USB键盘鼠标则禁用笔记本键盘触摸板
SLEEP_TIME=5
# 自带的键盘触摸板名字 这里要用xinput list命令查看你的电脑自带键盘触摸板的名字 KEYBOARD_IN='AT Translated Set 2 keyboard' MOUSE_IN='ETPS/2 Elantech Touchpad'
# 外接的键盘触摸板名字,同上插拔外接键鼠,并用xinput list命令确定你的外接键鼠的名字 USB_KEYBOARD_OUT='Logitech USB Keyboard' USB_MOUSE_OUT='USB OPTICAL MOUSE'
while true do # 处理键盘的逻辑 HAVE_USB_KEYBOARD=`xinput list | grep "$USB_KEYBOARD_OUT"` if [ "" != "$HAVE_USB_KEYBOARD" ]; then if [ `xinput list-props "$KEYBOARD_IN" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 1 ]; then xinput set-prop "$KEYBOARD_IN" 'Device Enabled' 0 # echo Disable keyboard fi else if [ `xinput list-props "$KEYBOARD_IN" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 0 ]; then xinput set-prop "$KEYBOARD_IN" 'Device Enabled' 1 # echo Enable keyboard fi fi
# 处理键鼠标的逻辑 HAVE_USB_MOUSE=`xinput list | grep "$USB_MOUSE_OUT"` if [ "" != "$HAVE_USB_MOUSE" ]; then if [ `xinput list-props "$MOUSE_IN" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 1 ]; then xinput set-prop "$MOUSE_IN" 'Device Enabled' 0 # echo Disable Touchpad fi else if [ `xinput list-props "$MOUSE_IN" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 0 ]; then xinput set-prop "$MOUSE_IN" 'Device Enabled' 1 # echo Enable Touchpad fi fi
sleep $SLEEP_TIME done
|
该脚本唯一的缺点就是不能自动获取外置鼠标键盘的设备名称,由于个人有两套以上的鼠标键盘,所以根据自己的使用习惯,还是选择了快捷键控制的方式。
touchpad3.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #!/bin/bash
# 笔记本自带 TouchPad 名称,可用 xinput --list 获取 TOUCHPAD_NAME='SynPS/2 Synaptics TouchPad'
# 自定义快捷键触发 TouchPad 控制逻辑 if [ `xinput list-props "$TOUCHPAD_NAME" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 1 ];then xinput set-prop "$TOUCHPAD_NAME" 'Device Enabled' 0 # echo Disable Touchpad
elif [ `xinput list-props "$TOUCHPAD_NAME" | grep "Device Enabled" | awk -F ':' '{print $2}'` == 0 ];then xinput set-prop "$TOUCHPAD_NAME" 'Device Enabled' 1 # echo Enable Touchpad
fi
|
参考
赞赏