Ubuntu 18.04.2 auf einem Thinkpad T480
Ich möchte ein Udev-Skript ausführen, wenn meine Maus angeschlossen ist. Ich gehe davon aus, dass ein Benutzer namens Tim eine Xsession ausgeführt hat (ich verwende KDE Plasma).
Ziel ist die Konfiguration des Scrollens mit der mittleren Taste für eine USB-Maus von Logitech, einschließlich Hot Plug.
Meine Regel lautet:
/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"
Der Speicherort von XAUTHORITY wird von dem kopiert, was ich in einer Shell sehe.
Ich habe einen Aufruf zum Logger im Skript, und dieser wird mehrmals aufgerufen (warum?). Die Udev-Regel funktioniert also, obwohl ich erwartet hatte, dass sie nur einmal aufgerufen wird.
Es hat einen gewissen Effekt, weil es meine Einstellungen für das natürliche Scrollen durcheinander bringt ... dasselbe Skript aktiviert das natürliche Scrollen, aber nach dem Aufruf von udev werden die Einstellungen für das natürliche Scrollen zurückgesetzt. Es ist also schlimmer als ein Fehler, es bringt tatsächlich meine Einstellungen durcheinander :)
Wenn das Skript manuell ausgeführt wird, funktioniert es einwandfrei. Unabhängig davon, wie oft ich es aufrufe.
Bearbeiten
ls -l /tmp/xauth-1000-_0
-rw------- 1 tim tim 53 Jun 11 20:07 /tmp/xauth-1000-_0
Wird diese Berechtigungseinstellung ein Problem darstellen?
Antwort1
Dies ist möglich mit einer Konfigurationsdatei auf/usr/share/X11/xorg.conf.d/41-libinput-local.conf
Diese Inhalte funktionieren gerätespezifisch:
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
Es funktioniert, wenn das Gerät nach Beginn der Sitzung per Hot Plug angeschlossen wird, und bleibt während des Suspendierens/Fortsetzens bestehen, wie von Tim (OP) berichtet.
Verweise:
- man(4) libinput
man xorg.conf
- Archlinux: Mausbeschleunigung