触摸板在恢复时中断 - 为什么 synclient 不能在 shell 脚本中工作?

触摸板在恢复时中断 - 为什么 synclient 不能在 shell 脚本中工作?

有时暂停-恢复会中断 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以便报告是否已加载,也可以尝试替换rmmodmodprobe -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"

相关内容