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?
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.
xinput list
pour trouver l'identifiant de votre appareil.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.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 )