web-dev-qa-db-fra.com

Localisez l'id du périphérique d'entrée et changez la valeur de sa propriété

J'ai appris de cet article que vous pouvez définir la vitesse de la souris comme suit:

$ xinput --set-prop 10 "Device Accel Constant Deceleration" 4

10 est la id du périphérique cible, que vous pouvez obtenir en vérifiant le résultat de la commande xinput.

Cependant, le problème est que chaque fois que je débranche ma souris et que je la rebranche, sa id change. Il ne suffit donc pas de placer la ligne ci-dessus dans un mouse.sh. J'ai également besoin de rechercher dynamiquement la valeur id actuelle du périphérique cible, c'est-à-dire ma souris.

La partie tragique est que je ne connais rien du script bash, et donc ici pour chercher une solution rapide à mon problème spécifique:

Comment écrire ce script simple pour localiser la id d'un périphérique d'entrée, dites mouse, et utiliser cette id dans la ligne xinput ci-dessus?

2
Naitree

De la xinputpage de manuel :

device peut être le nom de périphérique sous forme de chaîne ou l'identifiant XID du périphérique.

Cela signifie que vous pouvez simplement donner le nom complet de votre souris à la commande xinput.

Commençons par identifier votre périphérique souris, tapez xinput dans un terminal:

$ xinput 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=17   [slave  pointer  (2)]
⎜   ↳ Logitech Logitech Illuminated Keyboard    id=11   [slave  pointer  (2)]
⎜   ↳ ROCCAT ROCCAT Kone Pure Optical           id=13   [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)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ HD Pro Webcam C920                        id=9    [slave  keyboard (3)]
    ↳ Integrated Camera                         id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=18   [slave  keyboard (3)]
    ↳ Logitech Logitech Illuminated Keyboard    id=10   [slave  keyboard (3)]
    ↳ ROCCAT ROCCAT Kone Pure Optical           id=12   [slave  keyboard (3)]
    ↳ No brand 2Port KVMSwicther                id=14   [slave  keyboard (3)]

Ici, ma souris est un ROCCAT ROCCAT Kone Pure Optical mais vous ne pouvez pas l'utiliser telle quelle car ce type de souris déclare plusieurs périphériques (une souris de jeu).

Donc préfixez le nom du périphérique avec 'pointeur:' comme suit:

$ xinput --set-prop 'pointer:ROCCAT ROCCAT Kone Pure Optical' "Device Accel Constant Deceleration" 4

Ajustez la commande ci-dessus pour qu'elle corresponde à votre propre appareil et vous pouvez la coller dans votre script mouse.sh.

1
Sylvain Pineau