<!-- title: Support des souris Cyborg -->
<!-- category: GNU/Linux Matériel -->
<!-- tag: planet -->

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. <!-- more -->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
