Support des souris Cyborg

On trouve de l'information contradictoire et pas très à jour sur le support des souris Cyborg sous GNU/Linux. Je résume donc ce que j'ai mis en oeuvre pour le support du modèle R.A.T. 5 sous ArchLinux. D'abord il faut indiquer ses caractéristiques pour Xorg. j'ai rajouté un fichier 10-cyborg-rat-mouse.conf dans /etc/X11/xorg.conf.d.

    Section "InputClass"
        Identifier "Mouse Remap"
        MatchProduct "Saitek Cyborg R.A.T.5 Mouse"
        MatchDevicePath "/dev/input/event*"
        Option "ButtonMapping" "1 2 3 4 5 6 7 2 9 10 11 12 0 0 0 16 17 18 19 20 21"              
    EndSection

La souris a été pensée pour les jeux sous Ms Windows pour lequel un CD spécifique permet de définir des macros pour automatiser certaines actions. Un bouton mode à 3 couleurs permet de passer d'un jeu de macros à un autre. Dans chaque mode, on peut définir le rôle de la molette arrière, des 2 boutons sur le côté gauche. Je crois que le bouton rouge rajoute de la précision lors des visées dans les FPS.

Même si on n'est pas joueur il serait dommage ne pas profiter de ces boutons supplémentaires pour se configurer des actions spécifiques. Sous Arch on peut installer les paquets AUR xbindkeys et xmacro. Le premier permet d'associer des commandes aux boutons tandis que le second permet de capturer (avec xmacrorec2) et d'envoyer des keystrokes (xmacroplay). D'emblée on constate que le bouton mode n'est pas reconnu et que le bouton arrière gauche est assimilé au bouton de la molette principale. Je ne sais pas si c'est une limitation de xmacro ou si la reconnaissance de la souris sous X est perfectible. Néanmoins, cela nous donne 2 boutons et une molette supplémentaires à configurer. Pour cela, il faut lancer xbindkeys au démarrage (le rajouter dans gnome-session-properties fait l'affaire), et créer un fichier de configuration ~/.xbindkeysrc.

A titre d'exemple, voici le fichier.xbindkeysrc que j'utilise actuellement :

#Ctrl-PgDn (move to previous tab): Thumbwheel right
"echo -e 'KeyStrPress Control_L\\nKeyStrPress Page_Down\\nKeyStrRelease Page_Down\\nKeyStrRelease 
  Control_L' | xmacroplay :0"
    m:0x0 + b:10
#Ctrl-PgUp (shift to next tab): Thumbwheel left
"echo -e 'KeyStrPress Control_L\\nKeyStrPress Page_Up\\nKeyStrRelease Page_Up\\nKeyStrRelease 
  Control_L' | xmacroplay :0"
    m:0x0 + b:11
#Alt-F4 (close application)): Red "Snipe" button
"echo -e 'KeyStrPress Alt_L\\nKeyStrPress F4\\nKeyStrRelease F4\\nKeyStrRelease Alt_L' 
  | xmacroplay :0"
    m:0x0 + b:12
#Ctrl-W (close window): Front thumb button
"echo -e 'KeyStrPress Control_L\\nKeyStrPress w\\nKeyStrRelease w\\nKeyStrRelease Control_L' 
  | xmacroplay :0"
    m:0x0 + b:9
Vus : 504
Publié par Yannic Arnoux : 170