该网站上有几个关于禁用笔记本电脑触摸板的问题,但似乎都没有完全回答我的问题。
我想禁用我的触摸板(我已经做了这一点)并在挂起/恢复后保持其禁用状态(我在这里失败了)。
我在一台便宜的中国笔记本电脑上运行着 Ubuntu 12.04。
我有一个可执行文件 /home/yannick/bin/notouch,如下所示:
xinput set-prop `xinput list | grep "ImPS/2 Generic" | awk '{print $7}' | sed "s/id=//"` "Device Enabled" 0
该脚本运行一次 xinput 以获取(最终被证明是)我的触摸板的 ID 号,然后再次运行 xinput 以禁用触摸板。我在我的 .bashrc 和其他地方都有它。
目前,当我暂停然后恢复笔记本电脑时,触摸板会再次激活,我真的想阻止这种情况发生。所以我还有一个文件
/etc/pm/sleep.d/97disable_touchpad(由 root 拥有,+x)如下所示:
#!/bin/bash
case "$1" in
thaw|resume)
/home/yannick/bin/notouch 2>/tmp/notoucherrors
;;
*)
;;
esac
exit $?
该死,它不起作用!事实上,脚本似乎在恢复后运行,并且 /tmp/notoucherrors 的内容是:
Unable to connect to X server
Unable to connect to X server
哎呀,我想让触摸板在休眠和恢复时保持禁用状态。我该怎么做?
以下是我尝试过但无法完成的另外两件事:
1)$synclient TouchpadOff=1
这将返回
Couldn't find synaptics properties. No synaptics driver loaded?
2) 系统设置 -> 鼠标和触摸板。我只有鼠标选项(我甚至可以说,出于某种原因,ubuntu 认为我的触摸板是鼠标)。特别是,没有关闭触摸板的选项——我只有鼠标选项(常规、指针速度、拖放、双击超时)。
答案1
我有一个暂时能用的部分解决方法——我随机设置 DISPLAY 变量并希望它能用。目前有效。我还以我的用户 ID(而不是 root)身份运行 notouch。
我在 sleep.d 中的 disable_touchpad 脚本现在如下所示:
#!/bin/bash
case "$1" in
thaw|resume)
echo "running notouch" >> /tmp/notouchlogger
export DISPLAY=:0
su -c - yannick /home/yannick/bin/notouch 2>>/tmp/notoucherrors
;;
*)
;;
esac
exit $?
而且它似乎有效。
答案2
使用 root 权限,尝试创建文件 /etc/pm/sleep.d/0000trackpad。
sudo -i gedit /etc/pm/sleep.d/0000trackpad
如果需要,请输入密码,在 gedit 中输入以下代码并保存文件
#!/bin/sh
case "$1" in
resume)
DISPLAY=:0.0 su USER -c '/usr/bin/synclient TouchpadOff=0' ;;
esac
注销并重新登录
答案3
创建包含以下内容的文件/etc/X11/xorg.conf.d/95-disable-touchpad.conf
:
Section "InputClass"
Identifier "libinput touchpad disable-by-default"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "SendEventsMode" "disabled"
EndSection
这将禁止所有触摸板设备发送 X 事件。
- 如果您稍后想要启用(第一个)触摸板:
xinput --set-prop "$(xinput --list --name-only | grep -i touchpad | head -n 1)" "libinput Send Events Mode Enabled" 0 0`
- 再次手动禁用它:
xinput --set-prop "$(xinput --list --name-only | grep -i touchpad | head -n 1)" "libinput Send Events Mode Enabled" 1 1
在 Dell Latitude 5520 上使用 Debian Bullseye 在挂起/休眠/恢复/解冻方面测试成功,但在其他地方应该类似。
另外,显然可以使用Option "SendEventsMode" "disabled-on-external-mouse"
这种方法,只有在没有连接外接鼠标时触摸板才会被禁用,否则触摸板将保持启用状态(但我还没有尝试过这种配置)。