Page 1 sur 1

Configurer une souris multi-boutons

Publié : lun. 08 oct. 2018, 21:24
par le Manchot Masqué
Pour ceux qui ont une souris verticale, et ceux qui ont une "souris de combat" (mort aux chats !;), il est donc possible de lier des boutons de la souris à des événements claviers !

Pour cela, tout est très bien expliqué en anglais sur https://cubethethird.wordpress.com/2016 ... -on-linux/, mais pour être gentil, je vous en fais un petit résumé rapide.

Le but du jeu est d'abord de repérer les numéros des boutons de la souris auxquels vous voulez attribuer vos événements. Cela se fait avec la commande

Code : Tout sélectionner

xev | grep -A 2 Button
dans une console, qui va ouvrir une petite fenêtre dans laquelle il faudra venir se positionner avec la souris, et cliquer sur les boutons à configurer.
Exemple chez moi avec deux boutons de la souris auxquels je veux attribuer des événements PAGE HAUT et PAGE BAS :

Code : Tout sélectionner

ButtonRelease event, serial 38, synthetic NO, window 0x4e00001,
    root 0x4ca, subw 0x0, time 46382527, (107,37), root:(1129,1001),
    state 0x0, button 8, same_screen YES
--
ButtonPress event, serial 38, synthetic NO, window 0x4e00001,
    root 0x4ca, subw 0x0, time 46383094, (107,37), root:(1129,1001),
    state 0x0, button 9, same_screen YES
Je vois donc que les boutons à configurer pour ma souris portent les numéros 8 et 9.
Il s'agit ensuite d'installer deux paquets :

Code : Tout sélectionner

apt-get install xbindkeys xautomation
Le premier va "capter" les clics boutons, et va ensuite utiliser la commande "xte" du second paquet pour émuler un appui clavier sur une touche.
La prochaine étape est de créer son fichier de configuration xbindkeys perso :

Code : Tout sélectionner

xbindkeys –defaults > $HOME/.xbindkeysrc
qui pour le moment, ne contient qu'un seul raccourci par forcément utile.
Résumé à cette étape : nous avons les boutons souris à émuler, il nous faut encore décrire les événements clavier à lier.
On lance un

Code : Tout sélectionner

xbindkeys -k
qui va lui aussi ouvrir une petite fenêtre dans laquelle on va se positionner avec la souris, puis on appuie sur les touches clavier qui nous intéressent. Chez moi, ça donne quelque chose du genre :

Code : Tout sélectionner

"(Scheme function)"
    m:0x0 + c:112
    Prior
pour la touche PAGE HAUT et

Code : Tout sélectionner

"(Scheme function)"
    m:0x0 + c:117
    Next
pour la touche PAGE BAS
Ce qui nous intéresse ici, c'est uniquement le nom des événements vus par le serveur graphique, soit Prior et Next.
Je peux maintenant compléter mon fichier $HOME/.xbindkeys avec

Code : Tout sélectionner

#PageUp press
"xte 'keydown Prior'"
b:9

#PageUp release
"xte 'keyup Prior'"
b:9 + Release

#PageDown press
"xte 'keydown Next'"
b:8

#PageDown release
"xte 'keyup Next'"
b:8 + Release
Tout est prêt, il ne reste plus qu'à lancer xbindkeys en console, et tester l'appui des boutons sous Firefox par exemple : quand je clique sur le bouton 9, je monte bien d'une page, quand je clique sur le bouton 8, je descends bien d'une page.

Si tout est ok, il faut rajouter xbindkeys dans la liste des applications qui doivent être lancées au démarrage de la session utilisateur (sous Mate : on passe par le menu Système > Préférences > Personnel > Applications aux démarrage).

xbindkeys permet non seulement d'émuler des combinaisons de touches clavier, mais également de lancer des commandes complètes via xterm ou autre. C'est donc un outil relativement complet et puissant à garder sous la main, quand on veut personnaliser son environnement de travail.

Dernière remarque : on aurait aussi pu utiliser la commande

Code : Tout sélectionner

xinput
repérer le nom du périphérique, et le tester avec

Code : Tout sélectionner

xinput test "NOM PERIPHERIQUE"
puis cliquer sur les boutons à configurer pour avoir les numéros 8 et 9 ici.