我有一条udev
正确匹配的规则,但它无法正确执行命令RUN+="/usr/bin/synclient TouchpadOff=1"
。如果我将其更改为某种测试 shell 脚本,它就可以正常工作。
如果我synclient TouchpadOff=1
从命令行运行,则不会返回任何结果,因此无法正常工作。但是,添加sudo
该行可以按预期禁用触摸板。
udev 没有以超级用户权限执行该命令吗?
Ubuntu 15.04
答案1
synclient
依赖于 X 服务器才能工作。请参阅man synclient
。因此,您需要定义当前正在运行的服务器的DISPLAY
和环境变量。XAUTHORITY
如果您只使用具有简单服务器设置的单个用户帐户,请尝试以下操作:
RUN+="/bin/sh -c 'DISPLAY=:0 XAUTHORITY=/home/<username>/.Xauthority synclient TouchpadOff=1'"
更改<username>
为您的用户名。