En GNU/Linux tengo el problema de que cuando hago clic en el touchpad, el cursor se mueve. Es un comportamiento muy molesto, ya que produce clics indeseados y poca fluidez de trabajo. Llevo tiempo con este problema y quiero solucionarlo de una vez. Dado que en Windows el mismo touchpad funciona perfectamente, se trata de un problema de driver, no de hardware.
En GNU/Linux, Synaptics (man synaptics
) es el driver de Xorg que se encarga de manejar touchpads. A pesar de que los mismos pueden ser manejados normalmente por los drivers "evdev" o "mouse", el driver Synaptics permite disponer de características adicionales avanzadas de los touchpads, como puede ser:
- Movimiento con velocidad y aceleración ajustable.
- Eventos de botones con toques cortos en el touchpad.
- Eventos de doble clic con docle toque en el touchpad.
- Arrastrar con el touchpad.
- Eventos de clic derecho y medio en las esquinas superiores e inferiores del touchpad.
- Scrolling vertical moviendo el dedo por la parte derecha del touchpad, y horizontal por la parte inferior.
- Múltiples toques para scrolling vertical.
- Detección de dedo ajustable.
- Tocar con múltiples dedos para clic derecho.
- Velocidad dependiente de la presión.
Yo no uso todas estas características, pero mis favoritas son el toque simple para los clics, el triple toque para simular el clic derecho, y arrastrar dos dedos en cualquier parte del touchpad para hacer scrolling vertical (muy práctico). Gracias a estas características, no uso los botones del touchpad, y me he vuelto totalmente dependiente de las mismas (sobre todo para el scrolling vertical).
Volviendo al problema de que el cursor se mueva justo cuando voy a hacer clic (lo que me hace hacer clics en cualquier lado menos donde yo quiero), pareciera que se debe a que el touchpad está configurado de forma demasiado sensible a los toques. Entonces, en el momento de comenzar a hacer el toque, detecta un leve desplazamiento. Investigando en foros de Internet encontré que es posible modificar los valores de las opciones FingerHigh y FingerLow para alterar el comportamiento de los clics, utilizando la herramienta synclient
.
La herramienta synclient
permite consultar y modificar las opciones del driver Synaptics. De acuerdo al manual (man synclient
), mediante -l
lista la configuración actual:
$ synclient -l | grep Finger FingerLow = 25 FingerHigh = 30 EmulateTwoFingerMinZ = 282 EmulateTwoFingerMinW = 7 VertTwoFingerScroll = 1 HorizTwoFingerScroll = 0 ClickFinger1 = 1 ClickFinger2 = 3 ClickFinger3 = 2
Se observa que los valores para FingerLow y FingerHigh son 25 y 30 respectivamente.
De acuerdo al manual del driver Synaptics (man synaptics
), FingerHigh representa la presión mínima a partir de la cual el driver interpreta un toque y FingerLow representa la presión máxima desde donde finaliza el mismo. Es decir, cuando la presión del dedo alcanza FingerHigh comienza el toque, y cuando la presión del dedo cae hasta FingerLow finaliza (release). Un toque puede ser para mover el cursor, hacer clic, etc.
La interpretación de mi problema es que al arrastrar (mover el cursor/puntero), detecta el fin del toque demasiado tarde (está configurado muy sensible). De esta forma, al finalizar el movimiento del cursor, se produce un desplazamiento involuntario al soltar el touchpad. Esto implica que debo aumentar el valor de la opción FingerLow, para que detecte el fin del toque con anticipación (y así evitar un movimiento involuntario producido al finalizar el contacto con la yema del dedo). Para que el touchpad sea menos sensible a los toques, y no se produzcan movimientos antes de los clics, aumentar los valores de FingerLow y FingerHigh, cuidando siempre que FingerHigh sea mayor que FingerLow (de lo contrario nunca se detectarán los toques). Los valores a asignar dependen de la presión que ejerza cada uno, a mí personalmente me funcionaron perfectamente los valores 45 para FingerHigh y 40 para FingerLow.
$ synclient FingerLow=45 $ synclient FingerHigh=50
Probar con diferentes valores hasta encontrar los que mejor nos funcionen. Luego, utilizar estos valores en la configuración de Xorg para que queden correctamente configurados durante el inicio.
$ nano /etc/X11/xorg.conf
Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" Option "FingerHigh" "45" Option "FingerLow" "40" EndSection
Espero que les sirva.