Désactiver le bouton central de la souris

17

J'ai donc essayé de parcourir les diverses autres questions, mais elles se concentrent principalement sur la désactivation de la pâte centrale de la souris.

Fondamentalement, le bouton central de la souris sur mon Logitech G500s est cassé, et il continue de "cliquer" de façon aléatoire afin de gâcher toute chance de faire du travail.

Existe-t-il un moyen de le désactiver? Ou le mapper à rien?

Merci et désolé s'il s'agit d'un doublon.

xinput list production:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [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)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]
Tom Hamilton Stubber
la source
Exécutez cette commande xinput list | grep 'id='et publiez la sortie.
Helio
Pour cette souris, il existe deux ID de périphérique pour cette souris. Après avoir exécuté le test xinput 9, l'ID du bouton central de ma souris est 2
Tom Hamilton Stubber

Réponses:

24

Exécutez ces commandes:

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

Explication (gracieusement donnée par @Yehosef ):

Le premier nombre est l'identifiant du pointeur (vous n'en aurez souvent qu'un, dans ce cas il y en avait deux, 9 et 10).

Les chiffres suivants correspondent à ce que vous faites avec les premier, deuxième et troisième boutons (c.-à-d. Gauche, milieu, droite) de la souris. Le "1 0 3" lui indique que le bouton gauche doit faire un clic gauche (action 1), le bouton central ne doit rien faire et le bouton droit doit faire un clic droit (action 3). Si vous souhaitez que le bouton central fasse également un clic gauche, vous pouvez utiliser "1 1 3". Si vous souhaitez changer les actions droite et gauche, vous pouvez utiliser "3 0 1". Voir https://wiki.ubuntu.com/X/Config/Input pour plus d'informations.

Hélio
la source
Merci beaucoup, essayer de chercher cela devenait très frustrant.
Tom Hamilton Stubber
1
Merci! Pour ceux qui se demandent - le 9/10 est l'ID d'entrée de la souris et le 1 0 3 sont les mappages des premier, deuxième et troisième boutons de la souris. Si vous vouliez que tous les boutons fassent la même chose, vous pouvez utiliser 1 1 1 ou si vous voulez commuter les boutons droit et gauche, vous pouvez utiliser 3 0 1.
Yehosef
@Yehosef: Merci! Je n'ai pas expliqué ce qui se passe lorsque l'OP a exécuté les commandes. Veuillez créer une nouvelle réponse détaillée, envoyez-moi un ping et je voterai. Ceci est une explication intéressante.
Helio
@Helio Je n'ai pas de réponse différente - juste plus d'explications pour ceux qui sont intéressés. Vous souhaitez peut-être modifier votre réponse pour inclure ces informations, vous pouvez. Je pensais à modifier votre réponse - mais je n'aime généralement pas quand les gens ajoutent des détails supplémentaires à mes réponses - alors je me suis abstenu :)
Yehosef
2
Alors, comment puis-je déterminer le premier nombre. Je cours xinput list | grep 'id='et cherche les choses qui ressemblent le plus à ma souris / pavé tactile? Une façon définitive de dire si c'est la bonne?
Kvothe
2

Les instructions suivantes sont basées sur les informations du Ubuntu Wiki (faites défiler vers le bas jusqu'au titre "Exemple: Désactiver le collage du bouton du milieu de la souris sur une souris à molette").

Tout d'abord, déterminez l'ID du pointeur en répertoriant les périphériques d'entrée:

xinput list | grep 'id='

Et recherchez la ligne qui contient le nom de votre pointeur, il devrait également y avoir l'id de l'appareil, juste après "id =". Par exemple, l'identifiant de cet appareil est 10:

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

Ensuite, obtenez la carte actuelle des boutons de cet appareil (j'utiliserai l'id de mon appareil, qui est 10):

xinput get-button-map 10

Production:

1 2 3 4 5 6 7 8 9

Il s'agit du mappage des boutons du pointeur sur les actions, où le nombre représente le code d'action et le bouton de position.

Nous sommes intéressés par la deuxième carte - le numéro 2 correspond à l'action "Clic du bouton central" et sa position - au bouton central réel.

Pour désactiver le bouton central déclenchant une action, j'utiliserais la commande xinput set-button-mapavec l'ID de l'appareil et la carte mise à jour (le nouveau code d'action est 0 - aucune action). Pas besoin de mettre toute la carte - la carte jusqu'à ce que le bouton intéressé suffise (le reste ne sera tout simplement pas mis à jour):

 xinput set-button-map 10 1 0

C'est ça.

ego
la source
Cela a fonctionné pour mon pavé tactile sur un Lenovo Thinkpad T580 avec Ubuntu 18.04
Russell England
0

set-button-mapdésactive la fonctionnalité de clic central. Pour émuler le clic du milieu en utilisant le clic gauche + droit (afin que vous puissiez coller et ouvrir dans l'onglet etc. à l'aide de la souris) mais désactiver les clics de la molette de la souris, vous pouvez patcher libinput:

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • enregistrer le patch ci-dessus sous libinput-1.XX.Y/debian/patches/middle.diff
  • ajouter middle.diffàdebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • redémarrez Xorg ou redémarrez la machine

Et utilisez xinput listet xinput set-prop 11 "libinput Middle Emulation Enabled" 1pour activer l'émulation gauche + droite. 11est le numéro de périphérique à partir xinput listduquel vous pouvez ajouter la commande set-prop ~/.xstartup.

Ou, pour éviter la reconstruction, utilisez un fichier libinput .quirks (non testé):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
patraulea
la source