udevルールトリガスクリプトの一部が機能しないのはなぜですか? (挿入時にマウスの加速度を設定するにはxinputを使用してください)

udevルールトリガスクリプトの一部が機能しないのはなぜですか? (挿入時にマウスの加速度を設定するにはxinputを使用してください)

udevルールがあります

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c084", RUN+="/some/script.sh"

次のスクリプトを正常に実行しました。

#!/bin/bash

ls /tmp >> /tmp/lsasd # this line works
touch /tmp/asdasd # this line works

for id in $(xinput --list | \
            sed -n '/Logitech G203 Prodigy Gaming Mouse.*pointer/s/.*=\([0-9]\+\).*/\1/p')
do
  echo $id >> /tmp/test.log 2>&1
  xinput --set-prop $id 'libinput Accel Profile Enabled' 0, 1
  
done

最初の2つのコマンドは正しく機能しますが、プロパティ設定は機能しません。アイデアはコマンドを実行することです

xinput --set-prop $id 'libinput Accel Profile Enabled' 0, 1

$id発見した全ての装備については当時は知らなかったからです。

何が問題なのか知っていますか?xinput当時も端末は使えませんか?これをテストするために1つを追加しようとしましたが、sleep 5そのうちの1つも機能しませんでした。

答え1

私は答えを見つけました:

xinput 設定は X コンテキストでのみ有効です。ただし、デスクトップマネージャで実行されている端末では実行されません。

例えば

ACTION=="add", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c084", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/administrator/.Xauthority", RUN+="/some/script.sh"

これについてもっと読むことができます。ここここそしてここ

関連情報