Ubuntu 18.04.2 на Thinkpad T480.
Я хочу запустить скрипт udev, когда моя мышь подключена. Я рад предположить, что у пользователя с именем tim запущен Xsession (я использую kde plasma).
Мое правило в:
/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 скопировано с того, что я вижу в оболочке.
У меня есть вызов 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
Это содержание работа для определенного устройства:
Section "InputClass"
Identifier "Logitech USB Receiver Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "ScrollButton" "2"
Option "ScrollMethod" "button"
Option "NaturalScrolling" "true"
EndSection
Это работает, когда устройство заменено в горячем режиме после того, как сессия начинается, и это выживает во время, приостанавливают/возобновляют, как сообщил Tim (OP).
Ссылки:
man xorg.conf