xinput을 사용하여 스크립트를 통해 여러 장치를 구성하는 방법은 무엇입니까?

xinput을 사용하여 스크립트를 통해 여러 장치를 구성하는 방법은 무엇입니까?

스크립트를 사용하여 여러 장치를 자동으로 설정하도록 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)]

문제는 이 두 '커세어 게이밍 마우스'가 매번 다른 ID를 갖고 있다는 점이다. 왜 쥐가 두 마리인지는 모르겠지만... 그게 내가 사는 세상이다. 속성을 설정하는 스크립트를 어떻게 작성합니까? 이것을 사용했지만 다음에 시작할 때 작동하지 않았습니다(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

해당 이름을 사용해 보았지만 일치하는 장치가 여러 개 있다고 불평합니다.

도움을 주시면 감사하겠습니다.

답변1

둘 다 변경해야 하는 경우 루프를 사용할 수 있습니다.

#!/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

답변2

이름 앞에 "포인터:" 또는 "키보드:"를 추가할 수 있습니다. 예를 들어

xinput list-props 'pointer:Logitech M585/M590'
xinput list-props 'keyboard:Logitech M585/M590'

관련 정보