web-dev-qa-db-fra.com

Remapper les boutons sur le périphérique secondaire

J'ai assisté à un certain nombre de discussions similaires à cette question, mais je n'ai pas encore réussi à faire en sorte que cela fonctionne.

Je me suis récemment cassé le doigt gauche très mal. J'ai le Fragpedal Quad et j'essaie de remapper les pédales à des choses comme control, alt et tab.

Le périphérique se comporte comme une souris - par défaut, les pédales sont configurées pour défiler vers le haut, défiler vers le bas, cliquer avec le bouton droit de la souris et cliquer avec le bouton gauche. Lorsque je lance xinput, j'obtiens les informations suivantes:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Good Work Systems, Inc. GWS IDI Device    id=9    [slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                  id=11   [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)]
    ↳ Good Work Systems, Inc. GWS IDI Device    id=10   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=12   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=13   [slave  keyboard (3)]

Les pédales sont le dispositif "Good Work Systems".

Ce qui me tenait le plus à l’esprit, c’était de créer et d’éditer une configuration .xbindkeys en tant que telle:

# Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Mais cela affecte aussi les boutons de ma souris habituels. Comment spécifier un mappage de clé par périphérique?

4
sixtimes

Mappez les boutons de la souris de votre appareil sur les boutons de la souris non utilisés, puis utilisez vos xbindkeys pour vous y référer.

  1. Utilisez xinput list pour trouver l'identifiant de votre appareil.
  2. Utilisez xinput set-button-map pour remapper vos boutons sur d’autres boutons de la souris. Par exemple, si xinput list indique que l'ID de votre périphérique est 15 et que votre périphérique a quatre boutons, effectuez xinput set-button-map 15 10 11 12 13. Vous avez maintenant défini les clics de souris du périphérique 15 sur b: 10, b: 11, b: 12 et b: 13.
  3. Mettez à jour votre fichier .xbindkeysrc pour remapper ces boutons sur les raccourcis souhaités.
3
old_warbaker

Je me rends compte que cela a 2 ans à ce stade, et déjà répondu, mais pour référence future, vous pouvez spécifier l'ID de périphérique dans votre appel à xte.

# Copy
"xte -i 9 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte -i 9 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte -i 9 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte -i 9 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Ceci devrait limiter la modification au seul périphérique identifié par l'ID donné par -i. Étant donné que ces identifiants peuvent être mappés différemment à chaque démarrage, vous souhaiterez peut-être scriptifier le changement afin de pouvoir l'exécuter manuellement.

( voir aussi https://askubuntu.com/a/492745 )

0
zerobandwidth