Deshabilitar el botón central del mouse

17

Así que traté de revisar las otras preguntas, pero se centran principalmente en deshabilitar la pasta del mouse central.

Básicamente, el botón central del mouse en mi Logitech G500s está roto, y sigue haciendo "clic" al azar, por lo que está arruinando cualquier posibilidad de hacer el trabajo.

Hay alguna manera de desactivarlo? O mapearlo a la nada?

Gracias y perdón si esto es un duplicado.

xinput list salida:

⎡ 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
fuente
Ejecute este comando xinput list | grep 'id='y publique la salida.
Helio
Para este mouse, hay dos ID de dispositivo para este mouse. Después de ejecutar la prueba xinput 9, la identificación del botón central de mi mouse es 2
Tom Hamilton Stubber

Respuestas:

24

Ejecute esos comandos:

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

Explicación (amablemente donada por @Yehosef ):

El primer número es la identificación del puntero (a menudo solo tendrá uno, en este caso había dos, 9 y 10).

Los siguientes números son lo que haces con el primer, segundo y tercer (es decir, izquierdo, medio, derecho) botones del mouse. El "1 0 3" le dice que el botón izquierdo debe hacer clic izquierdo (acción 1), el botón central no debe hacer nada y el botón derecho debe hacer clic derecho (acción 3). Si desea hacer que el botón central también haga clic izquierdo, puede usar "1 1 3". Si desea cambiar las acciones derecha e izquierda, puede usar "3 0 1". Ver https://wiki.ubuntu.com/X/Config/Input para más información.

Helio
fuente
Muchas gracias, tratar de buscar esto se estaba volviendo muy frustrante.
Tom Hamilton Stubber
1
¡Gracias! Para aquellos que se preguntan: el 9/10 es la identificación de entrada del mouse y el 1 0 3 son las asignaciones para el primer, segundo y tercer botón del mouse. Si desea que todos los botones hagan lo mismo, puede usar 1 1 1 o si desea cambiar los botones derecho e izquierdo, puede usar 3 0 1.
Yehosef
@Yehosef: ¡Gracias! No expliqué lo que está sucediendo cuando el OP ejecutó los comandos. Por favor cree una nueva respuesta detallada, hágame ping y votaré. Esta es una explicación interesante.
Helio
@Helio No tengo una respuesta diferente, solo más explicaciones para los interesados. Quizás desee editar su respuesta para incluir esta información que pueda. Estaba pensando en editar su respuesta, pero generalmente no me gusta cuando la gente agrega detalles adicionales a mis respuestas, así que me
abstuve
2
Entonces, ¿cómo determino el primer número? ¿Corro xinput list | grep 'id='y busco las cosas que más se parecen a mi mouse / touchpad? ¿Alguna forma definitiva de saber si es la correcta?
Kvothe
2

Las siguientes instrucciones se basan en información en Ubuntu Wiki (Desplácese hacia abajo hasta el título "Ejemplo: deshabilitar el botón central del mouse pegar en un mouse con rueda de desplazamiento").

Primero, determine la identificación del puntero enumerando los dispositivos de entrada:

xinput list | grep 'id='

Y busque la línea que contiene el nombre de su puntero, también debe haber una identificación del dispositivo, justo después de "id =". Por ejemplo, la identificación de este dispositivo es 10:

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

A continuación, obtenga el mapa de botones actual de ese dispositivo (usaré la identificación de mi dispositivo, que es 10):

xinput get-button-map 10

Salida:

1 2 3 4 5 6 7 8 9

Esta es la asignación de botones de puntero a acciones, donde el número representa el código de acción y el botón de posición.

Estamos interesados ​​en el segundo mapa, el número 2 corresponde a la acción "Clic del botón central" y la posición del mismo, al botón central real.

Para deshabilitar el botón central que dispara cualquier acción, usaría el comando xinput set-button-mapcon la identificación del dispositivo y el mapa actualizado (el nuevo código de acción es 0, sin acción). No es necesario poner un mapa completo - el mapa hasta que el botón interesado sea suficiente (el resto simplemente no se actualizará):

 xinput set-button-map 10 1 0

Eso es.

ego
fuente
Esto funcionó para mi touchpad en un Lenovo Thinkpad T580 con Ubuntu 18.04
Russell England
0

set-button-mapdeshabilita la funcionalidad de clic medio. Para emular el clic con el botón izquierdo + clic derecho (para que pueda pegar y abrir en la pestaña, etc. con el mouse) pero deshabilitar los clics de la rueda del mouse, puede parchear 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
  • guardar el parche anterior como libinput-1.XX.Y/debian/patches/middle.diff
  • agregar middle.diffadebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • reiniciar Xorg o reiniciar la máquina

Y use xinput listy xinput set-prop 11 "libinput Middle Emulation Enabled" 1para habilitar la emulación izquierda + derecha. 11es el número del dispositivo xinput listy puede agregar el comando set-prop a~/.xstartup .

O, para evitar la reconstrucción, use un archivo libinput .quirks (no probado):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
patraulea
fuente