Tux





Utilisateur :

Mot de passe :



Fil RSS+XML
Fil RSS/XML



la bataille hadopi
Make with bluefish editor
Dessin fait avec le logiciel inkscape
Graphics by GIMP
Get Firefox

tux qui bouge

Revenir à la page principale : Matériel

Utiliser tout les boutons de votre souris

Auteur : Slyce
Date de création : 01/11/2004

Pour commencer...


Les utilisateurs de PC ont la chance de disposer de souris avec pleins de boutons. Il faut savoir qu'une roulette de souris correspond en fait à trois boutons : un quand on clique dessus, un quand on l'avance et un quand on le recule. Les souris récentes proposent même parfois deux roulettes ou, de manière plus courante, deux boutons lattéraux (un à droite, un à gauche). Dans ce cas nous disposons de 7 boutons et les deux boutons 4 et 5 ne sont plus ceux avant et arrière de la roulette et les boutons lattéraux de gauche et de droite.

Votre distribution a probablement reconnu votre souris et lui a associé par défaut 5 boutons et l'axe Z (la roulette) est associée aux boutons 4 et 5. Ca se complique quand il faut utiliser les boutons 6 et 7.

Comment faire pour prendre en charge les boutons ?

En tant qu'administrateur, éditez votre fichier /etc/X11/XF86Config (qui peut être XF86Config-4 ou Xorg.conf selon votre environnement graphique X), recherchez la section correspondant à votre souris qui peut être légèrement différente de la nôtre et modifiez comme suit les Options "ButtonNumber" "Buttons" et "ZaxisMapping" (ButtonNumber est une ancienne entrée pour les anciens Xfree et n'est plus utilisée mais sait-on jamais...) :

Section "InputDevice"

   Driver       "mouse"

   Identifier   "Mouse[1]"

   Option       "ButtonNumber" "7"

   Option       "Buttons" "7"

   Option       "Device" "/dev/mouse"

   Option       "Name" "Autodetection"

   Option       "Protocol" "ExplorerPS/2"

   Option       "Vendor" "Sysp"

   Option       "ZAxisMapping" "6 7"

EndSection


Si on ne place pas le ZaxisMapping (la roulette) sur les boutons 6 et 7 ces derniers ne sont pas reconnus par XFree (Xorg ?) qui continue à affecter les boutons 4 et 5 à la roulette alors qu'il s'ait en fait des 6 et 7. Je suppose qu'il s'agit d'un bug... Sauvez vos modifications et relancez X (proprement de préférence). Via une console lancez le programme xev qui sert à tester les événements (souris, clavier, etc) sous X. Comme vous le voyez sur la capture, il ouvre une petite fenêtre avec un cadre.

Exécution de xev


Quand on bouge la souris, tape sur le clavier ou clique sur un bouton, l'action défile sur la console (derrière). Déplacez la souris dans le cadre et cliquez sur les boutons (roulette, lattéraux). Si vous voyez défiler des choses du genre :

ButtonPress event, serial 30, synthetic NO, window 0x2a00001,

    root 0xb0, subw 0x2a00002, time 1894678, (48,28), root:(728,612),

    state 0x10, button 4, same_screen YES


C'est bon. Vérifiez bien les informations de type button pour voir si les 7 boutons sont disponibles. Il reste cependant un problème : les gestionnaires de bureau se fichent complétement des valeurs de ZaxisMapping pour la roulette et continuent à prendre les valeurs 5 et 6. Ainsi si vous laissez comme ça, la roulette ne marche plus mais est remplacée par les deux boutons lattéraux. Il faut donc dire à X d'inverser les boutons 4 et 5 avec les boutons 6 et 7, ce qu'on peut faire avec la commande xmodmap, tout d'abord en essayant dans une console :

xmodmap -e "pointer = 1 2 3 6 7 4 5"

Testez ensuite sous KDE, Konqueror, Mozilla ou ce que vous voulez. Si ça marche, il va falloir mettre ça en "dur" pour X. Pour ça suivant votre distribution il y a deux méthodes possibles. La première marche dans tous les cas. Editez le fichier /etc/X11/xinit/xinitrc (faites une recherche s'il n'est pas là) et rajoutez la ligne ci-dessus dedans AVANT le "exec $WINDOWMANAGER". Mettez la ligne au début. La seconde possibilité, c'est, ci votre distribution le supporte, de rajouter un fichier appelé 90xmodmap (par exemple) dans /etc/X11/xinit/xinitrc.d, qui contient la ligne ci-dessus.

Les 7 boutons de votre souris sont maintenant configurés. Il faut y associer des actions ! Pour ça il nous faut utiliser l'outil imwheel. Les versions données dans les distributions ne sont par forcément à jour. Conseil : supprimez l'ancienne version et installez la nouvelle.

Le programme imwheel permet initialement de modifier les actions par défaut des boutons de la souris. Avant que KDE et Gnome prennent en charge les roulettes, il fallait par exemple dire que le bouton 4 scrollait une page ou une demi-page. Dans notre cas on veut que, par exemple, le bouton lattéral gauche soit equivalent au bouton précédent de Konqueror ou Mozilla, et idem pour le bouton droit (suivant). Les raccourcis clavier sont Alt+Droite et Alt+Gauche. On modifie la configuration de imwheel pour tout le monde dans /etc/X11/imwheel/imwheelrc ou pour chaque personne individuellement dans $HOME/.imwheelrc.

Voici ce que contient notre .imwheelrc :

".*"

None, Up, Alt_L|Left

None, Down, Alt_L|Right


Ce qui veut dire : pour tous les programmes/fenètres, l'action Up fera en fait un Alt_L+Left (Alt de gauche + flèche gauche), et l'action Down fera un Alt_L+Right (Alt de gauche + flèche droite). Pour dire que les actions Up et Down correspondent aux boutons 6 et 7 (nous avons inversé avec les 5 et 6 à l'aide du xmodmap), il faut lancer imwheel comme cela :

$ imwheel -b "67"

le -b "67" indique que le bouton 6 correspond à l'action "Up" et le 7 à l'action "Down". Pour plus de détails, man imwheel, c'est expliqué au début.

Si tout est ok (testez), vous pouvez rajouter la commande imwheel dans le xinitrc comme pour xmodmap. Rajoutez les lignes suivantes, juste après la commande xmodmap :

BINARY=$(which imwheel)
$BINARY -p -b "67"


Et relancez X ! Voilà ! Sachez que vous pouvez affecter des combinaisons de touches différentes seon les applications. Pour ça allez voir le site et le mode d'emploi de imwheel. Et pour connaître les noms affectés aux touches pensez à xev.
Pour en savoir plus ...

Astuces Pour l'exécution d'xmodmap avant le démarrage de votre gestionnaire de fenêtre, sous Debian ça se trouve dans le répertoire /etc/X11/Xsession.d au lieu de /etc/X11/xinit/xinitrc.d



Auteur : Stéphane Purnelle
Licence : PDL


Ecrire un commentaire - (html non autorisé)

Il y a 0 commentaires pour cet article

Vous n'êtes pas connecté. Votre contribution n'apparaîtra qu'après avoir été validée par un administrateur du site.Vous pouvez vous vous enregistrer ICI

TITRE :

Ligne Plus-Value
[Revenir au début de la page]   [HOME]   [A propos]