我有一条 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
来测试这一点,但这也不起作用。
答案1
我找到了答案:
xinput 设置仅在 X 上下文中有效。但它们不能从桌面管理器中启动的终端运行。
例如
ACTION=="add", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c084", ENV{DISPLAY}=":0.0", ENV{XAUTHORITY}="/home/administrator/.Xauthority", RUN+="/some/script.sh"
您可以在以下位置阅读更多内容: