Desplazamiento con el botón central del mouse con ThinkPad / evitar pegar

11

Tengo un teclado USB ThinkPad y quiero poder usar el clic central para pegar y desplazar.

Esto funciona en mi computadora portátil ThinkPad. En la computadora portátil, si se mantiene presionado el botón central durante un período de tiempo lo suficientemente breve, cuando se suelta se interpreta como " pegar ". Cuando se mantiene durante más tiempo, se interpreta como " desplazamiento ".

El problema es que, usando el teclado USB, la decisión de pegar ocurre cuando se presiona el botón central , no cuando se suelta , por lo que si trato de desplazarme con el botón central, se pegará primero, luego me desplazaré cuando lo mantenga presionado abajo (aunque curiosamente, esta pasta no se produce si ya estoy moviendo el cursor, que es mi solución actual).

¿Hay alguna manera de decirle a X11 que pegue al soltar el botón central en lugar de presionar (con la decisión de desplazarse en lugar de pegar según el tiempo que se mantuvo presionado)?

Alex
fuente
2
Es sorprendente escuchar que el comportamiento de X11 sería diferente dependiendo de qué mouse se esté utilizando. Sugiero usar xevpara ver los eventos ButtonPressy ButtonReleasepara ver si el botón de su computadora portátil realmente está enviando los eventos que cree que son en el momento en que cree que son. Es posible que esté haciendo algo de su propia magia y "mintiendo" a X11 sobre cuándo se presionan y sueltan los botones. Por cierto, parece normal que la pasta se produzca inmediatamente después de presionar el botón 2, no soltar .
Celada
1
También me encantaría saber cómo hacerlo, ya que estoy usando un teclado Bluetooth Bluetooth Trackpoint.
Justin N
Ese teclado USB, ¿qué modelo exacto es ese? ¿Tiene un touchpad "real" o un llamado clickpad (sin botones físicos)? Además, ¿qué distribución y entorno de escritorio utiliza? ¿Existe alguna configuración especial de xorg (/etc/X11/xorg.conf y /etc/X11/xorg.conf.d/)? Puede encontrar algunos consejos aquí: askubuntu.com/questions/2557/thinkpad-middle-button-scrolling y para clickpad aquí: askubuntu.com/questions/380825/…
doktor5000
1
¿Alguna actualización sobre esto? Estoy experimentando el mismo problema con un teclado externo de Lenovo.
languitar
FWIW, tengo dos modelos de teclado bluetooth trackpoint, y uno tiene este problema. xevmuestra que ButtonPresspara el botón 2 tan pronto como hago clic, luego ButtonReleasecuando empiezo a desplazarme. Lo que debería suceder es que ninguno de estos eventos se genera hasta que la acción se desambigua moviendo el punto de seguimiento (en cuyo caso no se genera presión ni relé) o se suelta el botón 2 (en cuyo caso, ambos eventos se envían al soltar).
stewSquared

Respuestas:

1

Esto funciona bien para mí en /etc/X11/xorg.conf.d/20-thinkpad.conf:

Section "InputClass"
    Identifier  "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option      "EmulateWheel"      "true"
    Option      "EmulateWheelButton"    "2"
    Option      "Emulate3Buttons"   "false"
    Option      "XAxisMapping"      "6 7"
    Option      "YAxisMapping"      "4 5"
EndSection

La sección importante es la MatchProductentrada, que incluye también el teclado USB. Puede encontrar la cadena de producto del teclado seleccionando /var/log/Xorg.0.loggrep (II) evdev:.

corecode
fuente
1

Intente habilitar la emulación de desplazamiento con los siguientes comandos, que funcionan bien en varios modelos de teclado trackpoint:

dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1

Si no te gusta, puedes deshacerlo con

xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0

Es posible que deba ajustar el desarrollo según su modelo de teclado. correr

xinput --list | grep TrackPoint

para ver cómo se llama su dispositivo señalador.

usuario3188445
fuente