定位多个输入设备的 id,并改变其属性值

定位多个输入设备的 id,并改变其属性值

我当时正在看如果只有一个设备名称,则回答此问题。拔下设备并重新插入时,ID 可能会发生变化,这就是为什么我需要通过名称获取它们。但我有两个:

在此处输入图片描述

SteelSeries Sensei Raw Gaming Mouse

我该如何在脚本中修复这个问题?我需要第一个有特定的设置,第二个也有特定的设置。

换句话说,我如何获取这两个 ID 以及它们出现的顺序?某种检查输出的 for 循环。

答案1

有人在所以提供了一个很好的脚本,可能对您有帮助。相应地更改命令。

您可以执行以下操作:

if [ "$SEARCH" = "" ]; then 
    exit 1
fi

ids=$(xinput --list | awk -v search="$SEARCH" \
    '$0 ~ search {match($0, /id=[0-9]+/);\
                  if (RSTART) \
                    print substr($0, RSTART+3, RLENGTH-3)\
                 }'\
     )

for i in $ids
do
    xinput set-prop $i 'Device Accel Profile' -1
    xinput set-prop $i 'Device Accel Constant Deceleration' 2.5
    xinput set-prop $i 'Device Accel Velocity Scaling' 1.0
done

因此,您首先要找到所有符合搜索模式的 ID $SEARCH并将它们存储在 中$ids。然后循环遍历 ID 并执行这三个xinput命令。

您应该确保$SEARCH匹配程度不要太大,因为这可能会导致不良行为。

相关内容