Thinkpad T480 上的 ubuntu 18.04.2
我想在连接鼠标时运行 udev 脚本。我很高兴假设名为 tim 的用户正在运行 Xsession(我使用 kde plasma)。
目标是为罗技 USB 鼠标配置中键滚动,包括热插拔。
我的规则是:
/etc/udev/rules.d/41-usb-mouse-add.rules
ACTION=="add" \
, ATTRS{idProduct}=="c539" \
, ATTRS{idVendor}=="046d" \
, ENV{DISPLAY}=":0" \
, ENV{XAUTHORITY}="/tmp/xauth-1000-_0" \
, RUN+="/home/tim/scripts/tweak_libinput.sh"
XAUTHORITY 的位置是从我在 shell 中看到的复制而来。
我在脚本中调用了 logger,它被多次调用(为什么?)所以 udev 规则有效,尽管我希望它只被调用一次。
它有一些效果,因为它破坏了我的自然滚动设置......同样的脚本设置了自然滚动,但是在 udev 调用之后,自然滚动设置被重置。所以这比失败更糟糕,它实际上破坏了我的设置:)
当脚本手动运行时,它工作正常。不管我调用它多少次。
编辑
ls -l /tmp/xauth-1000-_0
-rw------- 1 tim tim 53 Jun 11 20:07 /tmp/xauth-1000-_0
这个权限设置会有问题吗?
可以使用配置文件来执行此操作
/usr/share/X11/xorg.conf.d/41-libinput-local.conf
这些内容适用于特定设备:
正如 Tim (OP) 所报告的,它在会话开始后热插拔设备时工作,并且在挂起/恢复期间仍然存在。
参考:
man xorg.conf