Personalizar las opciones del TouchPad Synaptics en Linux

El driver de TouchPad Synaptics para Linux ofrece muchas opciones, pero no todas están a la vista. Aquí van dos formas de acceder a más opciones para dejar tu TouchPad funcionando perfecto.

En las últimas versiones de Ubuntu, los TouchPad de Synaptics incluídos en mayoría de los computadores portátiles funcionan sin necesidad de instalar o modificar nada, gracias a un driver de código abierto que permite su utilización en entornos gráficos.

Sin embargo, es probable que quieras modificar alguna configuración, y aquí la cosa se pone un poco complicada (sólo un poco); pero en realidad este driver proporciona todas las opciones que podríamos necesitar de nuestro touchpad. Para ello, tenemos dos alternativas complementarias: GSynaptics y los ficheros de configuración de X.Org

Además, también hay un par de opciones disponibles a través de las preferencias de mouse, en Sistema → Preferencias → Ratón, bajo la pestaña Touchpad. Allí podrás des/habilitar el touchpad, el click con un toque y el desplazamiento horizontal/vertical.

GSynaptics

GSynaptics es una herramienta de configuración gráfica para el touchpad, que permite cambiar parámetros de configuración sin necesidad de reiniciar el sistema. Una vez instalado (está en los repositorios de Ubuntu), lo encontrarás en Sistema → Preferencias → Touchpad.

Al ejecutarlo por primera vez, quizás te aparezca una ventana de advertencia indicándote un error sobre SHMConfig. Éste es un parámetro de configuración del driver que viene deshabilitado por defecto; para activarlo deberás abrir una ventana del terminal y editar el fichero de configuración del Touchpad, con permisos de administrador (o puedes hacer lo mismo desde el diálogo de Ejecutar una aplicación que sale al presionar Alt+F2): gksu gedit /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

Para habilitar SHMConfig, debes encontrar la sección que comienza con <match key="info.product" contains="Synaptics TouchPad"> (casi al principio de todo), y antes del primer cierre </match> (que corresponde al cierre de esa sección), debes ingresar la siguiente clave: <merge key="input.x11_options.SHMConfig" type="string">On</merge> —después de haber configurado el TouchPad a tu gusto, es buena idea borrar o comenar esta línea, ya que SHMConfig=On puede presentar problemas de seguridad.

Al reiniciar, podrás utilizar GSynaptics sin problema; tendrás acceso a las siguientes opciones de configuración:

  • Des/activar el touchpad
  • Ajustar la sensibilidad
  • Des/activar el click con un toque
  • Ajustar el tiempo el click con un toque
  • Des/activar toque rápido
  • Des/habilitar desplazamiento horizontal/vertical
  • Ajustar velocidad de desplazamiento horizontal/vertical
  • Des/activar desplazamiento circular
  • Ajustar velocidad y punto de inicio del desplazamiento circular
  • Des/activar movimiento en el eje
  • Ajustar aceleración y velocidad mínima/máxima

Algo bastante completo, pero aun hay otras opciones escondidas…

Editar el archivo de configuración del TouchPad

Como quizás se han dado cuenta por la sección anterior; las cosas han cambiado algo para configurar los dispositivos que funcionan en las X: anteriormente, su configuración estaba determinada por el archivo de configuración /etc/X11/xorg.conf, mientras que ahora toda la configuración se hace automáticamente a través de HAL; una “capa de abstracción de hardware” que hace que el hardware “simplemente funcione”. En lo práctico, esto significa que ahora la configuración de los dispositivos que funcionan con las X está repartida en diversos archivos XML. El de Synaptics se encuentra en /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

Sin embargo, a falta de una interfaz gráfica, puede resultar algo complicado saber qué valores deben llevar las variables que queramos modificar —aquí entra en juego synclient, un programa que forma parte del driver de Touchpad y que permite tanto obtener información del funcionamiento del driver, como modificar valores “al vuelo” (para lo cual será necesario activar SHMConfig, tal como hicimos en la sección anterior).

En mi caso particular, había dos cosas que me interesaba modificar: el ancho del área para el desplazamiento vertical (que era muy pequeño, y no se correspondía con el área delimitada en el touchpad) y activar el desplazamiento vertical con dos dedos (permite hacer desplazamiento vertical arrastrando dos dedos en cualquier parte del touchpad). Para ver todas las opciones a configurar, puedes ver el manual de synaptics con man synaptics

Volvamos a synclient… hay tres modos que nos interesarán: ver la configuración actual, recibir información sobre el funcionamiento del touchpad, y cambiar configuraciones. Para lo primero, tenemos synclient -l, que devuelve algo como:

Parameter settings:
    LeftEdge                = 1632
    RightEdge               = 5000
    TopEdge                 = 1575
    BottomEdge              = 4281
    FingerLow               = 25
    FingerHigh              = 30
    FingerPress             = 256
    MaxTapTime              = 180
    MaxTapMove              = 220
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 257
    VertScrollDelta         = 100
    HorizScrollDelta        = 121
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 0.109
    MaxSpeed                = 0.179934
    AccelFactor             = 0.0015
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 30
    EdgeMotionMaxZ          = 160
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 400
    EdgeMotionUseAlways     = 0
    UpDownScrolling         = 1
    LeftRightScrolling      = 1
    UpDownScrollRepeat      = 1
    LeftRightScrollRepeat   = 1
    ScrollButtonRepeat      = 100
    TouchpadOff             = 0
    GuestMouseOff           = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 2
    TapButton3              = 3
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 1
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 0
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1

Primero, lo más fácil: activar el desplazamiento vertical con dos dedos —synclient VertTwoFingerScroll=1 y listo; con eso queda activado durante la sesión, más adelante podremos hacer este cambio permanente al editar el fichero de configuración.

Ahora, para definir mejor el ancho del área de desplazamiento vertical, recurirremos nuevamente a synclient, pero ahora para tener información sobre la utilización del touchpad, con synclient -m 50, lo que nos entregará información cada 50 milisegundos sobre el dispositivo, algo similar a esto:

    time     x    y   z f  w  l r u d m     multi  gl gm gr gdx gdy
   0.000     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
  18.685  2482 2250  44 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  18.735  2489 2247  43 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  18.785  2656 2233  39 1 10  0 0 0 0 0  00000000   0  0  0   0   0
  18.836  3054 2222  36 1  7  0 0 0 0 0  00000000   0  0  0   0   0
  18.886  3445 2215  36 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  18.936  3761 2179  36 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  18.987  3906 2126  36 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  19.037  3879 2068  38 1  8  0 0 0 0 0  00000000   0  0  0   0   0
  19.087  3682 1978  35 1  9  0 0 0 0 0  00000000   0  0  0   0   0
  19.137  3367 1828  35 1 10  0 0 0 0 0  00000000   0  0  0   0   0
  19.187  3056 1749  33 1 10  0 0 0 0 0  00000000   0  0  0   0   0
  19.237  2929 1731  26 1 10  0 0 0 0 0  00000000   0  0  0   0   0
  19.287     1 5855   3 2  5  0 0 0 0 0  00000000   0  0  0   0   0
  19.337     1 5855   4 2  5  0 0 0 0 0  00000000   0  0  0   0   0
  19.588     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
  19.738     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0
  19.838     1 5855   2 2  5  0 0 0 0 0  00000000   0  0  0   0   0
  19.988     1 5855   0 0  0  0 0 0 0 0  00000000   0  0  0   0   0
  20.289     1 5855   1 2  5  0 0 0 0 0  00000000   0  0  0   0   0

En mi caso, descubrí que el área marcada para el desplazamiento vertical en mi TouchPad comenzaba en la coordenada X = 5000, por lo que debería aplicar ese valor a RightEdge: synclient RightEdge=5000 y ya.

Recuerda que los cambios que realizas con synclient tienen efecto instantáneo, pero además son transitorios — para hacerlos permanentes, debemos editar el fichero de configuración del driver.

Fijar los cambios permanentes a la configuración

Nuevamente tendremos que editar /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi, pero como siempre, es buena idea realizar primero una copia de seguridad: sudo cp /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi.backup

Ahora sí, a editar… podemos hacerlo con cualquier editor de texto, por ejemplo: gksu gedit /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

En mi caso, mi fichero de configuración queda así:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="Synaptics TouchPad">
        <merge key="input.x11_driver" type="string">synaptics</merge>
	<!-- Arbitrary options can be passed to the driver using 
	     the input.x11_options property since xorg-server-1.5. -->
	<!-- EXAMPLE:
	<merge key="input.x11_options.LeftEdge" type="string">120</merge>
	-->
	<!-- La siguiente es la línea que insertamos antes para activar SHMConfig.
	Si ya no necesitas hacer más cambios o utilizar synclient, puedes comentarla
	o borrarla, ya que SHMConfig=On implica riesgos de seguridad -->
	<merge key="input.x11_options.SHMConfig" type="string">On</merge>
	<merge key="input.x11_options.RightEdge" type="string">5000</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
      </match>
      <match key="info.product" contains="AlpsPS/2 ALPS">
        <merge key="input.x11_driver" type="string">synaptics</merge>
      </match>
      <match key="info.product" contains="appletouch">
        <merge key="input.x11_driver" type="string">synaptics</merge>
      </match>
      <match key="info.product" contains="bcm5974">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.LeftEdge" type="string">0</merge>
        <merge key="input.x11_options.RightEdge" type="string">1280</merge>
        <merge key="input.x11_options.TopEdge" type="string">0</merge>
        <merge key="input.x11_options.BottomEdge" type="string">800</merge>
        <merge key="input.x11_options.ClickFinger1" type="string">1</merge>
        <merge key="input.x11_options.ClickFinger2" type="string">3</merge>
        <merge key="input.x11_options.ClickFinger3" type="string">2</merge>
        <merge key="input.x11_options.HorizEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
        <merge key="input.x11_options.HorizScrollDelta" type="string">0</merge>
        <merge key="input.x11_options.VertScrollDelta" type="string">40</merge>
        <merge key="input.x11_options.PressureMotionMinZ" type="string">10</merge>
        <merge key="input.x11_options.FingerLow" type="string">16</merge>
        <merge key="input.x11_options.FingerHigh" type="string">80</merge>
        <merge key="input.x11_options.FingerPress" type="string">256</merge>
        <merge key="input.x11_options.PalmDetect" type="string">0</merge>
        <merge key="input.x11_options.PalmMinWidth" type="string">10</merge>
        <merge key="input.x11_options.PalmMinZ" type="string">200</merge>
        <merge key="input.x11_options.MinSpeed" type="string">0.8</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">1.2</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.10</merge>
        <merge key="input.x11_options.MaxTapMove" type="string">25</merge>
        <merge key="input.x11_options.MaxTapTime" type="string">223</merge>
        <merge key="input.x11_options.MaxDoubleTapTime" type="string">200</merge>
        <merge key="input.x11_options.TapButton1" type="string">0</merge>
        <merge key="input.x11_options.TapButton2" type="string">0</merge>
        <merge key="input.x11_options.TapButton3" type="string">0</merge>
        <merge key="input.x11_options.RTCornerButton" type="string">0</merge>
        <merge key="input.x11_options.RBCornerButton" type="string">0</merge>
        <merge key="input.x11_options.LTCornerButton" type="string">0</merge>
        <merge key="input.x11_options.LBCornerButton" type="string">0</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Como pueden ver, la parte que nos interesa está prácticamente al principio (suponiendo que efectivamente quieres configurar un TouchPad Synaptics, y no otro de los dispositivos controlados por este fichero).

El archivo es un simple XML que acepta todas las propiedades descritas en el manual de Synaptics, de la misma forma que se hacía antes con xorg.conf, pero en una sintaxis un-poco distinta.

10 thoughts on “Personalizar las opciones del TouchPad Synaptics en Linux

  1. Sí, es cierto, no explicas del todo, pero para mi es el artículo más completo sobre este tema que he visto. Gracias a ti pude configurar al fin el touchpad para que aceptara taps.

    De verdad, muchas gracias… llevaba horas intentando arreglar el problema. ¿te molesta que lo ponga en mi blog?

    Un saludo,
    Cristian.

  2. Por supuesto. Aunque, ahora que lo pienso, explico a mi manera y te menciono por ser quien me ayudo a encontrar con la solución.

    Un saludo!

  3. Buenas

    *** Comando: desactivar pulsaciones de ratón con touchpad, MATE ***

    Deshabilitar las pulsaciones (toques, golpes, golpecitos) del ratón con el touchpad (panel táctil) se consigue fácilmente de forma gráfica. P.e. en Linux Mint 17 MATE basta con ir al menú principal > Centro de control > Hardware > Ratón > Touchpad, quitar la marca de “Activar pulsaciones del ratón con el touchpad” y cerrar esa ventana. Esto es útil para los que solemos usar el touchpad pero, tal vez por tocarlo un poco fuerte, hacemos clic sin querer, lo que nos puede traer alguna pérdida de tiempo, problemilla, … Nosotros preferimos usar los botones externos (normalmente “debajo”) para hacer clic.

    Para conseguir lo mismo se puede usar el siguiente comando (en una consola o terminal o desde el diálogo “Ejecutar una aplicación”, que aparece al pulsar a la vez las teclas Alt y F2):
    gsettings set org.mate.peripherals-touchpad tap-to-click false

    Para volver a activar las pulsaciones:
    gsettings set org.mate.peripherals-touchpad tap-to-click true

    Para, en un terminal, ver si están activas o desactivadas:
    gsettings get org.mate.peripherals-touchpad tap-to-click

    Puede ser útil tener estos comandos en un script, p.e. en uno que podemos ejecutar tras arrancar el Live USB que, además de desactivar las pulsaciones del touchpad, puede activar la distribución de teclado española, poner nuestros motores de búsqueda favoritos de Firefox,…

    ——————–
    En GNOME 2 los comandos equivalentes son:
    gconftool-2 -s -t bool /desktop/gnome/peripherals/touchpad/tap_to_click false
    gconftool-2 -s -t bool /desktop/gnome/peripherals/touchpad/tap_to_click true
    gconftool-2 -g /desktop/gnome/peripherals/touchpad/tap_to_click

    =============
    Fuente: http://www.elgrupoinformatico.com/comando-desactivar-pulsaciones-raton-con-touchpad-mate-t20619.html

  4. Gracias

    **** Desactivar touchpad al escribir para evitar problemas, MATE ****

    Si tienes un ordenador portátil (laptop, netbook, …) posiblemente te haya pasado más de una vez que estás escribiendo más bien rápido y de repente el cursor se te va a otro sitio, se borran palabras o frases, se copia o corta (y pega) texto en cualquier lugar, … (cosas raras, fenómenos extraños, a priori inexplicables …)

    Para solucionar este problema puede bastar con deshabilitar el touchpad (panel táctil) mientras escribimos (sigue funcionando perfecta e inmediatamente al dejar de escribir, sin problema alguno). En MATE (p.e. con Linux Mint 17, qiana) se consigue ejecutando el siguiente comando (en una consola o terminal o desde el diálogo “Ejecutar una aplicación”, que aparece al pulsar a la vez las teclas Alt y F2):

    gsettings set org.mate.peripherals-touchpad disable-while-typing true

    Para volver al estado anterior:

    gsettings set org.mate.peripherals-touchpad disable-while-typing false

    Para, en un terminal, ver el estado presente:

    gsettings get org.mate.peripherals-touchpad disable-while-typing

    Para ver la entrada de forma gráfica basta con ejecutar …

    dconf-editor

    … e ir abriendo las ramas del árbol de datos (esquemas -schemas- y entradas -keys-) hasta llegar a la entrada correspondiente: org, mate, desktop, peripherals, touchpad, disable-while-typing. Para cambiarla basta con pulsar sobre su valor (Value), siendo verdadero (true) al activar la casilla correspondiente o falso (false) al desactivarla.

    Para poder ejecutar dconf-editor antes hay que instalarlo en la computadora. Se puede hacer p.e. desde Synaptic, el gestor de paquetes (Package Manager).

    Si además (o en vez) de dconf-editor instalamos dconf-cli podemos ver el valor de la entrada ejecutando en un terminal:

    dconf read /org/mate/desktop/peripherals/touchpad/disable-while-typing

    Podemos desactivar el touchpad al escribir ejecutando:

    dconf write /org/mate/desktop/peripherals/touchpad/disable-while-typing true

    Y así volvemos a habilitarlo:

    dconf write /org/mate/desktop/peripherals/touchpad/disable-while-typing false

    Nota: Si instalamos dconf-tools conseguimos tanto dconf-editor como dconf-cli .

    Fuente: http://www.elgrupoinformatico.com/desactivar-touchpad-escribir-para-evitar-problemas-mate-t26856.html

Comments are closed.

%d bloggers like this: