Comment désactiver les boutons Précédent / Suivant de ma souris

36

Ma souris a une caractéristique malheureuse. Sur le côté gauche, là où mon pouce est assis très doucement lorsque je l'utilise, il y a deux boutons si sensibles qu'un simple pinceau les fera cliquer.

Je parle bien sûr des boutons avant / arrière embêtants qui, s'ils sont enfoncés dans un navigateur, peuvent rendre la lecture d'une vidéo youtube d'une heure encore plus difficile. Y at-il un moyen pour moi de les désactiver? Cela serait-il géré par X?

n0pe
la source
2
Je suis presque sûr que vous pouvez l'éteindre en utilisant xinput, mais je ne connais pas les détails ...
pbm
Cette question et la réponse s'appliquent également aux boutons Précédent / Suivant sur les claviers, p.ex. sur le clavier Thinkpad
Daniel S. Sterling

Réponses:

43

Démarrer le programme xevdans un terminal. Déplacez la souris à l'intérieur de la xevfenêtre. vous verrez beaucoup de choses défiler. Appuyez sur chaque bouton à tour de rôle. Revenez ensuite à la fenêtre du terminal et appuyez sur Ctrl+ C. xevaffiche une description de chaque événement saisi, en particulier ButtonPresset ButtonReleasedes clics de souris (vous en verrez également un certain nombre MotionNotifypour les mouvements de la souris et d’autres événements).

Il est probable que vos boutons avant et arrière soient associés aux boutons de la souris, peut-être aux boutons 8 et 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

Si tel est le cas, remappez ces boutons sur une action différente de votre navigateur, si vous le pouvez. Vous pouvez également remapper les boutons sur différents numéros auxquels votre navigateur ne réagit pas ou désactiver les boutons au niveau du système. Pour ce faire, placez ces lignes dans un fichier appelé ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

Testez-le avec la commande xmodmap ~/.Xmodmap. La plupart des environnements de bureau et des gestionnaires de fenêtres exécutent cette commande automatiquement lorsque vous vous connectez. si ce n'est pas le cas, arrangez-le pour qu'il s'exécute au démarrage de X.

Il est également possible que votre souris envoie un événement de clavier lorsque vous appuyez sur ces boutons:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Dans ce cas, mettez des lignes comme celles-ci dans ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol
Gilles, arrête de faire le mal
la source
2
Merci à vous deux pour la question et la réponse. Par ailleurs, pour réduire la folie de la xevsortie, il suffit de tuyau à travers grep: xev | grep -A2 ButtonPress; cela laissera tous les événements de mouvement de souris, les événements de focus, etc. et montrera simplement les ButtonPressévénements, ce qui est tout ce dont vous avez besoin ici.
Lambart le
Merci! Cela m'a aidé en quelques secondes! :-)
Brian Haak
Cela fonctionne aussi à Wayland!
Ray Foss
2

Vous pouvez utiliser xevla touche pour mapper les touches et utiliser le code ci-dessous (dans $ HOME / .xsessionrc) pour le mapper sur quelque chose que vous n'utilisez pas.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

Alternativement, vous devriez pouvoir le faire depuis une interface graphique de Gnome / KDE ou de tout autre ordinateur de bureau moderne.

Une autre option consisterait à pirater xorg.conf pour supprimer les définitions de boutons.

Sardathrion - Rétablir Monica
la source
1

juste une commande rapide pour y remédier, pas vraiment différente des autres réponses:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

essai

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

vous pouvez mettre le correctif cmd au démarrage des applications.

Il serait préférable d’utiliser xdotool pour vérifier si la fenêtre active est l’un de vos navigateurs et d’appeler xmodmap on demand pour le désactiver / l’activer, mais cela nécessiterait des scripts:>

Je n'ai vu aucune raison de garder les boutons supérieurs à 7 activés, une raison quelconque?

Puissance du Verseau
la source
0

Peut être fait avec le fichier de configuration xorg

Voici un exemple qui désactive le défilement horizontal (Enregistrez le nouveau fichier et redémarrez)

nano /etc/X11/xorg.conf.d/40-libinput-mouse-left-right.conf

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

Autres commandes utiles

xinput list
xinput list-props 15

Maintenant, pour cette question, le fichier de configuration xorg peut être utilisé pour remapper un bouton, voici un exemple

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection
intika
la source
0

Si vous essayez les xmodmapcommandes (sur X, et non Weyland) et vous obtenez l'erreur BadValue (integer parameter out of range for operation)dans X_SetPointerMapping, vous devrez peut - être utiliser à la xinputplace. Exécutez xinputsans paramètre pour obtenir les ID de périphérique (recherchez-en un pour le pointeur) puis exécutez

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

Dans mon cas, ma souris était le périphérique n ° 4 et je devais créer des boutons 8 et 9 en boutons 8 et 9 pour pouvoir avancer et revenir au travail. J'ai donc utilisé

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(J'ai gardé les boutons 8 et 9 également mappés sur 8 et 9 au cas où je changerais de souris.)

DerfK
la source