Udev:デバイスを接続するときにcmdを実行しますが、何もしません。

Udev:デバイスを接続するときにcmdを実行しますが、何もしません。

タッチパッドとポインティングスティックを無効にするためにUSBマウスを接続するときに、次のコマンドを実行する必要があるという規則を作成しました。

machine ~ # cat /etc/udev/rules.d/61-touchpad.rules 
# 61-touchpad.rules
# disable PS/2 touchpad on DISPLAY :0 if a mouse is added to the system
ACTION=="add", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_BUS}=="usb", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/user/.Xauthority", RUN+="/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint'"

# enable PS/2 touchpad on DISPLAY :0 if a mouse is removed from the system
ACTION=="remove", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_BUS}=="usb", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/user/.Xauthority", RUN+="/usr/bin/xinput --enable 'AlpsPS/2 ALPS GlidePoint'"

# disable Point Stick on DISPLAY :0 if a mouse is added to the system
ACTION=="add", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_BUS}=="usb", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/user/.Xauthority", RUN+="/usr/bin/xinput --disable 'DualPoint Stick'"

# enable Point Stick on DISPLAY :0 if a mouse is removed from the system
ACTION=="remove", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_BUS}=="usb", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/user/.Xauthority", RUN+="/usr/bin/xinput --enable 'DualPoint Stick'"

machine ~ #

ルートとしてシェルでコマンドを実行すると、DISPLAYとXAUTHORITYが以前に設定されてからUSBマウスを取り外し/再接続すると、それに応じてタッチパッドとトラックスティックが有効/無効になります。

ルールをテストするためにそれを使用すると、udevadm test --action=add /sys/class/input/mouse0udevは正しい環境でコマンドを実行するという多くの情報を記録します。

LINK 'input/by-path/pci-0000:00:14.0-usb-0:6:1.0-mouse' /lib/udev/rules.d/60-persistent-input.rules:32
RUN '/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint'' /etc/udev/rules.d/61-touchpad.rules:20
RUN '/usr/bin/xinput --disable 'DualPoint Stick'' /etc/udev/rules.d/61-touchpad.rules:26
device 0x7f0315c20320 filled with db file data
...
ACTION=add
DEVLINKS=/dev/input/by-id/usb-Logitech_USB_Optical_Mouse-mouse /dev/input/by-path/pci-0000:00:14.0-usb-0:6:1.0-mouse
DEVNAME=/dev/input/mouse0
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/0003:046D:C077.002A/input/input63/mouse0
DISPLAY=:0.0
ID_BUS=usb
ID_INPUT=1
ID_INPUT_MOUSE=1
ID_MODEL=USB_Optical_Mouse
...
MAJOR=13
MINOR=32
SUBSYSTEM=input
UDEV_LOG=7
USEC_INITIALIZED=8190049649
XAUTHORITY=/home/user/.Xauthority
run: '/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint''
run: '/usr/bin/xinput --disable 'DualPoint Stick''
...

USBマウスを起動しudevd --debugて取り外し/再接続すると、何が起こっているのかに関する多くの情報が得られます。

starting '/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint''
starting '/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint''
'/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint'' [27714] exit with return code 0
'/usr/bin/xinput --disable 'AlpsPS/2 ALPS GlidePoint'' [27715] exit with return code 0
starting '/usr/bin/xinput --disable 'DualPoint Stick''
starting '/usr/bin/xinput --disable 'DualPoint Stick''
'/usr/bin/xinput --disable 'DualPoint Stick'' [27719] exit with return code 0

すべてがよさそうです。唯一の問題は、USBマウスを接続してもタッチパッドとトラックスティックが無効にならないことです。

私が逃したものは何ですか?

ベストアンサー1

おすすめ記事