Page 1 sur 1

[Souris]Echange d'assignation de bouton (résolu)

Publié : sam. 23 oct. 2010, 12:04
par Gwakamol
Bonjour,

Je suis revenu depuis peu sous Arch (comment ais-je pu partir !!) et j'ai un problème de configuration avec ma souris vx nano de Logitech.

Tout les boutons fonctionne correctement, j'aimerais simplement inter-changer l'assignation de deux boutons.
Je m'explique; Cette souris comporte un bouton au dessus de la molette qui sous linux est reconnu comme le click du milieu.
Ok ça fonctionne mais ça n'est pas très pratique. j'aimerais l'assigner à un autre bouton de ma souris.
Après une recherche sur le wiki et google, je suis arrivé à la conclusion que changer l'assignation du click du milieu dans linux peut être problématique. Du coup, après avoir aussi essayer xbindkeys et xvkbd sans succès, je me suis tourné vers le xorg.conf et l'option "ButtonMapping".

Voici ce que j'ai fait:

Code : Tout sélectionner

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option		"Protocol" "Logitech"
	Option		"Device" "/dev/input/mice"
        Option          "ButtonMapping" "1 9 3 4 5 6 7 8 2 "
	Option		"ZAxisMapping" "4 5"
EndSection
Si j'ai bien compris le man, si je met 1 9 3 4 5 6 7 8 2 au lieu de 1 2 3 4 5 6 7 8 9, j'inverse les touche 9 et 2, c'est a dire exactement ce que je veut faire.
Malheureusement même après un reboot, rien n'y fait, aucun changement.

Alors je me tourne vers vous, suis-je complètement sur la mauvaise piste ou alors je ne m'y prend pas comme il faut pour configurer le xorg ?

Merci d'avance en tout cas, j'espère avoir été clair.

Re: [Souris]Echange d'assignation de bouton

Publié : sam. 23 oct. 2010, 14:57
par Vinvin
Salut
Gwakamol a écrit :j'aimerais simplement inter-changer l'assignation de deux boutons
J'ai eu exactement le même besoin : le bouton qui faisait le « clic-milieu » ne me convenait pas : je voulais assigner le « clic-milieu » à un autre bouton. Après beaucoup de recherches, j'y suis parvenu.

J'utilise la commande suivante :

Code : Tout sélectionner

xinput set-button-map "ImExPS/2 Generic Explorer Mouse" 1 0 3 4 5 6 7 2
Cette commande est réalisée automatiquement au début de chaque session Gnome (J'utilise le menu Système ==> Préférences ==> Applications au démarrage).

Bien sûr, il faut l'adapter à ton cas. Cette page t'aidera peut-être.
J'espère que ça te sera utile. :D

Re: [Souris] Echange d'assignation de bouton (résolu)

Publié : dim. 24 oct. 2010, 11:19
par Gwakamol
Merci Vinvin !

C'est exactement ce dont j'avais besoin.
Voici exactement comment je m'y suis pris (si ça peut aider d'autre personne) :

Déjà connaitre quel bouton de la souris on veut inverser, pour cela utiliser xev.
On le lance en console et on place le curseur dans la fenêtre qui s'ouvre. On appuie sur le bouton et on obtiens quelque chose comme ça :

Code : Tout sélectionner

ButtonPress event, serial 35, synthetic NO, window 0x4200001,
    root 0x15a, subw 0x0, time 808937, (144,39), root:(149,69),
    state 0x10, button 2, same_screen YES

ButtonRelease event, serial 35, synthetic NO, window 0x4200001,
    root 0x15a, subw 0x0, time 809057, (144,39), root:(149,69),
    state 0x210, button 2, same_screen YES
On peut voir ici quel bouton correspond a quel ID.

Ensuite il faut connaitre l'identifiant de la souris. On utilise xinput list :

Code : Tout sélectionner

[nico@Hector ~]$ xinput list
? Virtual core pointer                          id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? Logitech USB Receiver                     id=9    [slave  pointer  (2)]
?   ? Logitech USB Receiver                     id=10   [slave  pointer  (2)]
?   ? SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
? Virtual core keyboard                         id=3    [master keyboard (2)]
    ? Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ? Power Button                              id=6    [slave  keyboard (3)]
    ? Video Bus                                 id=7    [slave  keyboard (3)]
    ? Sleep Button                              id=8    [slave  keyboard (3)]
    ? USB2.0 1.3M UVC WebCam                    id=11   [slave  keyboard (3)]
    ? Asus Laptop extra buttons                 id=12   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]

Comme j'ai une souris sans fils, j'ai la souris et le récepteur qui apparaissent sous le même nom, je vais devoir utiliser l'id.

On peut donc construire notre commande comme suis :

Code : Tout sélectionner

xinput set-button-map "9" 1 9 3 4 5 6 7 8 2
le "9" correspond a l'id de ma souris et 1 9 3 4 5 6 7 8 2 à l'ordre dans lequel je veut mes bouton.

Il ne reste plus qu'a la placer dans le .bash_profile pour qu'elle soit exécuté au démarrage.
Attention, si vous souhaiter utiliser xbindkeys et xvkbd après ça, les boutons sont toujours pris en compte par leur id de base, c'est à dire,dans mon cas, si je veut modifier le comportement de la touche 9 je dois faire la modification sur la touche 9 avec xbindkeys et non la 2; Et ça même si je les ai inversés avec xinput(je ne suis pas sur que ça soit clair...)

Merci encore Vinvin, tu viens d'améliorer considérablement mon confort sous linux ^^

Re: [Souris]Echange d'assignation de bouton (résolu)

Publié : dim. 24 oct. 2010, 14:09
par Refuznik
Ou le mettre directement dans ton xorg.conf