У меня есть правило 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
. Первые две команды работают нормально, но настройка свойства не работает. Идея состоит в том, чтобы запустить команду
xinput --set-prop $id 'libinput Accel Profile Enabled' 0, 1
для всех найденных устройств, потому что я не знаю $ id
на тот момент.
Есть идеи, в чем может быть проблема? Устройства xinput
еще не доступны на данный момент?
Я попытался добавить sleep 5
, чтобы проверить это, но это также не работает.
Я нашел ответ:
Настройки xinput работают только в X-контексте. Но они не запускаются Например, из терминала, запущенного в вашем менеджере рабочего стола.
Например,
ACTION=="add", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c084", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/administrator/.Xauthority", RUN+="/some/script.sh"