Thinkpad T480 上的 ubuntu 18.04.2
我想在連接滑鼠時運行 udev 腳本。我很高興地假設一個名為 tim 的使用者正在運行 Xsession(我使用 kdeplasma)。
目標是為 Logitech 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
這個權限設定會有問題嗎?
答案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
正如 Tim (OP) 所報告的,它在會話開始後熱插拔設備時起作用,並且在掛起/恢復期間仍然存在。
參考:
- 人(4) libinput
man xorg.conf
- Archlinux:滑鼠加速