
Estoy ejecutando RHEL 8.9 en una computadora portátil Dell Precision 7560 con un trackpad integrado de 3 botones (botones izquierdo, central y derecho, todos situados entre el trackpad y el borde frontal de la computadora portátil). Tengo una aplicación gtk3 que necesita leer y procesar eventos de hacer clic y arrastrar con el botón central. La aplicación funciona bien cuando uso el botón central del trackpad, pero NO funciona cuando uso un mouse externo de 3 botones. (Se confirma que el botón central del mouse externo funciona en otro sistema, y también probé con un segundo mouse externo que también falló). Cuando presiono y mantengo presionado el botón central del trackpad mientras muevo el cursor del mouse a través del trackpad o el mouse, el cursor en la pantalla se mueve como se esperaba y todo funciona bien en mi aplicación, mientras que el cursor de la pantalla NO se mueve al arrastrar el botón central del mouse externo y mi aplicación no ve eventos de movimiento. Sin embargo, un simple clic y liberación del botón central del mouse externo funciona bien. Intenté ejecutar cada uno de los distintos servidores de visualización (X11 frente a Wayland, Clásico frente a Unclassic(?), etc.) pero todos se comportan igual aquí.
Intenté depurar con xev y vi exactamente lo que se esperaría al usar el botón central del trackpad, es decir, presionar un botón, luego un montón de MotionNotifys y luego un ButtonRelease. Cuando intento hacer clic y arrastrar con el botón central del mouse externo, al presionar y mantener presionado inicialmente el botón central no se produce ningún evento, el arrastre posterior genera un par de eventos ButtonPress/Release cada vez que esperaría ver un evento MotionNotify, y finalmente cuando se suelta el botón no se informa ningún evento.
Si el comportamiento anterior no fuera lo suficientemente extraño, la guinda del pastel es el comportamiento inverso de al menos dos aplicaciones de terminal diferentes (gnome-terminal y xfce4-terminal) en este sentido. Hacer clic con el botón central del mouse externo y arrastrar hará que el contenido de la ventana del terminal se desplace (es decir, los eventos de movimiento de alguna manera se pasan a los terminales), aunque nuevamente el cursor de la pantalla no se mueve. Sin embargo, hacer clic con el botón central y arrastrar del trackpad no desplaza el contenido de la ventana del terminal aunque el cursor de la pantalla se mueva.
Hurgué un poco con xinput pero no descubrí ningún dispositivo o propiedades de dispositivo que parecieran tener un impacto obvio:
% xinput --list
Virtual core pointer id=2 [master pointer (3)]
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
↳ xwayland-pointer:17 id=6 [slave pointer (2)]
↳ xwayland-relative-pointer:17 id=7 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
...
% xinput --list-props xwayland-pointer:17
Device 'xwayland-pointer:17':
Device Enabled (121): 1
Coordinate Transformation Matrix (123): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (247): 0
Device Accel Constant Deceleration (248): 1.000000
Device Accel Adaptive Deceleration (249): 1.000000
Device Accel Velocity Scaling (250): 10.000000
Me parece un poco extraño que no veo nada en la lista de dispositivos xinput que parezca indicar claramente distintos dispositivos de trackpad y mouse.
¿Alguien tiene alguna idea de lo que está pasando aquí? Quiero trabajar con un mouse externo y una computadora portátil cerrada. Busqué en Google algunas situaciones similares en este sitio y en otros lugares, pero no encontré ninguna solución que pareciera aplicarse a mí. La computadora portátil no tiene un dispositivo señalador y no he creado ningún acceso directo en ~/.config que yo sepa.
¡Gracias!