此脚本用于检测插入鼠标,以及禁用/启用触摸板。
这是触发脚本的udev规则:
ENV{DEVTYPE}=="usb_device", ACTION=="add", RUN+="/usr/local/bin/enable-disable-touchpad-when-add-remove-mouse.sh"问题是:命令synclient在被udev-rule调用时无法工作。
有趣的是,当鼠标插入或移除时,脚本确实会运行并写入日志(我可以跟踪-f日志并看到它的运行)。
当我从shell中手动运行该脚本时,它在任何用户(也包括root)帐户下都可以正常工作。这是脚本
#!/bin/bash
let x=`lsusb | grep -i logite | wc -l`+`lsusb | grep -i mouse | wc -l`
echo `id` >> /tmp/usblog2
if [ $x -gt 0 ]
then
echo touch off >> /tmp/usblog2
/usr/bin/synclient touchpadoff=1
else
echo touch on >> /tmp/usblog2
/usr/bin/synclient touchpadoff=0
fi能猜出为什么synclient不能在udev下运行吗?
发布于 2014-03-30 08:26:44
您需要环境变量DISPLAY和XAUTHORITY。在X终端中,它们被设置。
您可以在脚本或udev规则中设置它
https://stackoverflow.com/questions/15488659
复制相似问题