![触摸板在恢复时中断 - 为什么 synclient 不能在 shell 脚本中工作?](https://linux22.com/image/1081819/%E8%A7%A6%E6%91%B8%E6%9D%BF%E5%9C%A8%E6%81%A2%E5%A4%8D%E6%97%B6%E4%B8%AD%E6%96%AD%20-%20%E4%B8%BA%E4%BB%80%E4%B9%88%20synclient%20%E4%B8%8D%E8%83%BD%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
有时暂停-恢复会中断 XPS 15 上触控板的使用。我编写了一个快速 shell 脚本来再次修复它:
sudo rmmod psmouse
sudo modprobe psmouse
synclient TapButton3=2
synclient FingerHigh=40
synclient FingerLow=35
synclient HorizTwoFingerScroll=0
虽然它使触摸板再次工作,但它不会进行 synclient 调整以使中间按钮成为三指点击,也不会调整点击压力,使其在点击时不会移动。(我在“启动应用程序”中的命令中输入了这 4 个,用 ; 将它们分开,这样确实有效)
为什么 synclient 无法通过 shell 脚本运行,但之后立即运行这些命令却可以运行?
答案1
脚本是否在 X 服务器中运行?如果不是,则需要设置DISPLAY
变量
硬件是否仍在初始化?您可以尝试在后面添加一个 sleepmodprobe
以确保它在运行其余命令之前完全正常工作。(情况可能并非如此,因为内核应该在将设备交还给用户空间之前完全初始化设备)
命令是否modprobe
有效?尝试添加--first-time
以便报告是否已加载,也可以尝试替换rmmod
(modprobe -r
对于您的使用rmmod
应该有效,但这modprobe -r
是推荐的工具)
抱歉,这些大多是问题,但我没有足够的荣誉来添加评论
答案2
您可能希望每次“插入触摸板”时都运行脚本 - 包括从挂起状态恢复。为此,您应该从org.gnome.settings-daemon.peripherals.input-devices.hotplug-command
配置键指向您的脚本。dconf-editor
例如,您可以通过以下方式执行此操作,或者从 shell 运行以下命令(一次)(将双引号内的文本替换为正确的路径):
dconf write /org/gnome/settings-daemon/peripherals/input-devices/hotplug-command "/absolute/path/to/your/script"