スクリプトを使用して複数のデバイスを自動的に設定するようにxinputをどのように構成しますか?
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=12 [slave pointer (2)]
⎜ ↳ ALPS PS/2 Device id=13 [slave pointer (2)]
⎜ ↳ Corsair Corsair M65 Gaming Mouse id=15 [slave pointer (2)]
⎜ ↳ Corsair Corsair M65 Gaming Mouse id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Laptop_Integrated_Webcam_HD id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
↳ Corsair Corsair M65 Gaming Mouse id=16 [slave keyboard (3)]
そして問題は、これらの「corsairゲーミングマウス」の両方が毎回異なるIDを持っていることです。マウスが2つある理由はわかりませんが、それが私が住んでいる世界です。両方のマウスのプロパティを設定するスクリプトを作成するにはどうすればよいですか。これを使用しましたが、次に起動したときに機能しませんでした(IDが変更されました)。
#!/bin/sh
xinput --set-pr
op 10 "Device Accel Profile" 6
xinput --set-prop 10 "Device Accel Velocity Scaling" 5
xinput --set-prop 10 "Device Accel Constant Deceleration" 3
#xinput --set-prop 10 "Device Accel Velocity Tracker Count" 2
名前を使ってみましたが、一致するデバイスが複数あると文句を言います。
どんな助けでも大歓迎です。
両方に変更を加える必要がある場合は、ループを使用できます
#!/bin/sh
for id in $(xinput --list | \
sed -n '/Corsair Corsair M65 Gaming Mouse.*pointer/s/.*=\([0-9]\+\).*/\1/p')
do
xinput --set-prop $id "Device Accel Profile" 6
...
whatever you want to do
...
done
名前の前に「pointer:」または「keyboard:」を追加できます。例えば
xinput list-props 'pointer:Logitech M585/M590'
xinput list-props 'keyboard:Logitech M585/M590'