Ubuntu 18.04.2 на Thinkpad T480
Я хочу запустить скрипт udev, когда подключена моя мышь. Я с радостью предположу, что у пользователя с именем tim запущен Xsession (я использую kde plasma).
Цель — настроить прокрутку средней кнопкой для USB-мыши Logitech, включая горячее подключение.
Мое правило:
/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
будет ли эта настройка разрешений проблемой?
решение1
Это можно сделать с помощью файла конфигурации/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
Как сообщил Тим (OP), эта функция работает при горячем подключении устройства после начала сеанса и продолжает работать во время приостановки/возобновления работы.
Использованная литература:
- man(4) libinput
man xorg.conf
- Archlinux: Ускорение мыши