<p class="spip">Genuis Netscroll Optical est une souris deux boutons, avec une molette (qui correspond à trois boutons) et deux boutons latéraux. Il est possible d’appliquer ces configurations à tous types de souris ayant plus de trois boutons (donc ayant une molette).</p>

<p class="spip"><span class='spip_document_278 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/souris.png' width="150" height="103" alt="" /></span><p>

<p class="spip">Sous GNU, il est possible de personnaliser finement l’utilisation de ce genre de souris. Voici comment j’ai configuré ma souris.</p>

<h1>Configuration de Xorg</h1>
<p class="spip">Premièrement, il faut commencer par configurer Xorg.</p>

<p class="spip">J’ai modifié ma section de configuration de la souris de la manière suivante :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>Section "InputDevice"<br />
        Identifier  "Mouse0"<br />
        Driver      "mouse"<br />
        Option      "Protocol" "ExplorerPS/2"<br />
        Option      "Device" "/dev/psaux"<br />
        Option      "ZAxisMapping" "6 7"<br />
        Option      "Emulate3Buttons" "no"<br />
        Option      "Buttons" "7"<br />
EndSection</code></div>
<p class="spip">Il est important de noter que ZAxisMapping doit bien correspondre au bouton 6 et 7 (et non 4 et 5 comme pour les souris à une molette), sinon les deux boutons latéraux ne sont pas reconnus.</p>

<p class="spip">Pour voir les boutons reconnus par Xorg, nous allons utiliser xev. Pour cela, nous allons lancer xev dans un terminal :</p>

<p class="spip"><span class='spip_document_279 spip_documents spip_documents_center' >
<img src='http://download.tuxfamily.org/assocoagul/drupal-files/spip/xev.png' width="400" height="232" alt="" /></span><p>

<p class="spip">L’utilitaire xev permet de recupérer des informations sur la souris ou le clavier. Il faut se mettre sur la fenêtre et cliquer sur les boutons. Si aucun événement n’apparait dans la console, c’est que le bouton n’est pas reconnu. Dans la capture ci dessus, nous voyons que j’ai cliquer une fois sur le bouton 1 et 4 fois sur le bouton 7.</p>

<p class="spip">Ouvrons une application et testons la souris. Pour l’instant j’ai :</p>

<li> lorsque j’utilise la molette : défilement horizontal
<br /><li> lorsque j’utilise les deux boutons latéraux : défilement vertical
<p class="spip">Ceci ne me convient pas. Il me faut inverser ce comportement. Je vais utiliser xmodmap qui va permettre de modifier la correspondance entre les boutons physiques et les codes boutons.</p>

<p class="spip">Pour cela, en console utilisateur, je fais :</p>

<p class="spip"><code class='spip_code' dir='ltr'>/usr/X11R6/bin/xmodmap -e "pointer = 1 2 3 6 7 4 5"</code></p>

<p class="spip">Pour vérifier ma configuration, je fais :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[gnunux@myhost ~]$ xmodmap -pp<br />
There are 7 pointer buttons defined.<br />
<br />
    Physical        Button<br />
     Button          Code<br />
        1              1<br />
        2              2<br />
        3              3<br />
        4              6<br />
        5              7<br />
        6              4<br />
        7              5<br />
<br />
[gnunux@myhost ~]$</code></div>
<p class="spip">Maintenant j’ai bien mon défilement horizontal et vertical fonctionnel.</p>

<h1>Configuration de imwheel</h1>
<p class="spip">Le défilement horizontal n’est pas utile pour la plupart des applications. Il devient intéressant d’affecter les deux boutons latéraux à d’autres usages.</p>

<p class="spip">Par exemple, je voudrais que dans gnome-terminal, lorsque je clique sur un bouton latéral, un onglet s’ouvre. Pour cela je vais utiliser l’utilitaire imwheel (http://imwheel.sourceforge.net).</p>

<p class="spip">Avant de commencé à configurer, il me faut recuperer le nom de l’application détectée par imwheel. Pour cela, je lance imwheel en mode de déboggage. Puis je clique sur un des boutons latéraux. Au milieu du flot de données je trouve :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[gnunux@myhost ~]$ imwheel -d -D<br />
<br />
INFO: imwheel is not running as a daemon.<br />
[...]<br />
Testing: "Gnome-terminal" ?= "Terminal"<br />
Testing: "Gnome-terminal" ?= "gnome-terminal"<br />
Testing: "Gnome-terminal" ?= "Gnome-terminal"<br />
[...]</code></div>
<p class="spip">Donc, le nom de l’application est "Gnome-terminal".</p>

<p class="spip">Le bouton latéral du dessus de la souris est nommé dans l’application "Left", celui du dessous "Right" et les boutons de la molette "Up" et "Down" (correspondant à molette vers l’avant puis vers l’arrière).</p>

<p class="spip">Pour affecter une action, nous allons émuler un raccourci clavier. Par exemple, pour ouvrir un nouvel onglet, il faut faire Ctrl+Shift+T. Pour imwheel, cela donne Control_L|Shift_L|T.</p>

<p class="spip">Concrêtement, nous aurons dans /.imwheel :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>"Gnome-terminal"<br />
None,        Left,        Control_L|Shift_L|T</code></div>
<p class="spip">Il nous reste à expliquer le "None". Il est possible dans imwheel d’utiliser des modificateurs. Par exemple, nous pouvons affecter à Shift gauche + molette haut l’ouverture d’un nouveau terminal.</p>

<p class="spip"><code class='spip_code' dir='ltr'>Shift_L,        Up,          Control_L|Shift_L|N</code></p>

<p class="spip">Enfin, il est possible d’affecter des actions aux applications non définit comme suit :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>".*"<br />
None, Up, Alt_L|Left<br />
None, Down, Alt_L|Right</code></div>
<p class="spip">Enfin, il faut lancer imwheel en mode démon :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>[gnunux@myhost ~]$ imwheel<br />
INFO: imwheel started (pid=6044)<br />
[elise@myhost ~]$</code></div>