Desactivar el touchpad al conectar un ratón en Linux

En nixternal publicaron hace tiempo un pequeño script para correr al inicio que comprueba si hay conectado un ratón al portátil, en cuyo caso desactiva el touchpad.

Lo que hace el script es guardar en la variable mousecount el número de ratones conectados. Si es 1, sólo está disponible el touchpad, si es mayor de 1, entonces no lo necesitamos, por lo que lo desactivamos ejecutando el comando

synclient TouchpadOff=1

Para poder utilizar synclient antes tenemos que añadir la línea:

Option “SHMConfig” “on”

a la sección dedicada al touchpad en xorg.conf, como explique en Desactivar el touchpad mientras se escribe en Linux.

Para editar xorg.conf en gedit como root escribimos en la consola:

sudo gedit /etc/X11/xorg.conf

Busca una sección que comience con algo parecido a:

Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”

y añade la nueva opción dentro de esa sección (antes del EndSection).

Ahora vamos a crear el script, de nombre, por ejemplo, raton.sh en, por ejemplo, /usr/local/bin

sudo gedit /usr/local/bin/raton.sh

En el nuevo archivo pegamos lo siguiente:

mousecount=`grep mouse /proc/bus/input/devices |grep Handler |wc -l`
if [ “$mousecount” -eq “1” ]
then
synclient TouchpadOff=0
else
if [ “$mousecount” -gt “1” ]
then
synclient TouchpadOff=1
fi
fi

Y lo hacemos ejecutable:

sudo chmod +x /usr/local/bin/raton.sh

Para que se ejecute al inicio Ubuntu Sistema -> Preferencias -> Sesiones -> Programas de inicio -> Nuevo y escribimos como comando raton.sh.

Ahora bien, puede que conectemos el ratón después de haber iniciado sesión, en cuyo caso el touchpad no se desactivaría, incluso aunque ejecutáramos el script. Para conseguir que el touchpad se desactive automáticamente al conectar el ratón durante la sesión podemos crear una nueva regla para udevd, un demonio que se mantiene a la escucha de eventos del kernel indicando que se han añadido o quitado dispositivos, indicándole que ejecute un cierto script.

Creamos el nuevo script que se ejecutará cuando el evento sea relativo a un ratón

sudo gedit /usr/local/bin/raton-udevd.sh

con el siguiente contenido:

#!/bin/bash
DATE=`date`
FLOG=”/tmp/udev_test.log”
echo “$DATE – [$*] – [$ACTION]” >> “$FLOG”
case $ACTION in
add)
echo “DEBUG: conectat” >> “$FLOG”
synclient TouchpadOff=1
;;
remove)
echo “DEBUG: desconectat” >> “$FLOG”
synclient TouchpadOff=0
;;
esac

Lo hacemos ejecutable:

chmod +x /usr/local/bin/raton-udevd.sh

Y editamos el archivo correspondiente

sudo gedit /etc/udev/rules.d/85-hal.rules

para añadir la nueva regla

KERNEL==”mouse*”, RUN+=”/usr/local/bin/raton-udevd.sh”

Comentarios
  1. Mmm, interesante.

    Aunque creo que se podría ejecutar el script de otra forma:

    En el Centro de Control de GNOME, en “Preferencias de unidades y soportes extraibles”, pestaña Dispositivos de entrada”, hay una opción para lanzar un programa al conectar un ratón.

    Imagino que sería más fácil que andar modificando reglas de udev.

    Lo que no sé si al desconectar el ratón también se ejecutará, cuestión de probralo, ja que sino el touchpad no se volverá a activar.

    Saludos.

    Responder

  2. No se me había ocurrido, es una buena idea. Pero como dices no creo que funcione.

    Estoy vago para probar, pero si alguno puede confirmar… 😛

    Responder

  3. Lo que si he probado es que al desconectar el raton te quedas sin dispositivos de entrada, hasta que vuelves a poner el raton.

    Responder

  4. Te refieres a usando el método que propone Edu, ¿no?
    Porque el otro funciona perfectamente, cuando desconectas el ratón activa el touchpad

    Responder

  5. Me ha picado el gusanillo, a ver si esta tarde al volver del trabajo pruebo de montarme alguna historia para que se pueda hacer mediante el diálogo de “Preferencias de unidades y soportes extraibles”.

    Responder

  6. Reporta cualquier avance, Edu 😉

    Responder

  7. Cómo desactivar el touchpad al conectar un ratón en Linux…

    Script para correr al iniciar el sistema operativo que comprueba si hay conectado un ratón al portátil, en cuyo caso desactiva el touchpad….

    Responder

  8. […] el touchpad (es molestisimo, uso un ratón Logitech grande). Conseguido gracias a mundogeek 1 y 2. Se me salta al máximo el brillo repentinamente, WTF. Era culpa de una configuración al […]

    Responder

  9. crixfer

    Hola cómpas, primero que todo un saludo desde colombia, mundogeek me ha desvarado mas de una vez.
    Ahora si a lo que vinimos, resulta que cuando encendía el laptop y no tenia un mouse conectado igual me desactivaba el touchpad y tenia que conectar y desconectar un mouse para activar el touchpad.
    Supuse que era algo del script, y pues se solucionó.
    Simplemente cambié en el segundo if de -gt “1” a -gt “2”
    no se si será un error del script o mi laptop se enloquece XD = muchas gracias por existir 😛 salud!.

    Responder

  10. Le echaré un vistazo. Gracias crixfer.

    Responder

  11. crixfer

    Ahhm, CORRIJO, y supongo que para la mayoria debe estar bien como tu lo posteaste. Por alguna extraña razon me sale ésto sin mouse conectado:

    crixfer@crixfer-laptop:~$ grep mouse /proc/bus/input/devices
    N: Name=”Macintosh mouse button emulation”
    H: Handlers=mouse0 event0
    H: Handlers=mouse2 event9

    entonces me estaría detectando de arranque 2 dispositivos señaladores. Pero bueno, el caso es que sirve, muchas gracias!.

    Responder

  12. Manu

    Gracias, esto anda que es una belleza, la única diferencia es que en vez de 85-hal.rules, mi archivo era 95-hal.rules.

    Responder

  13. Marcelo

    Hola, tengo una duda en el xorg no tengo una seccion inputDevices. Queria saber exactamente como la agrego. estaria bien asi o como seria?

    Section “InputDevice”
    Identifier “Synaptics Touchpad”
    Driver “synaptics”
    Option “SHMConfig” “on”
    EndSection

    Puede ir en cualquier parte del archivo o en algun lugar especifico?

    Responder

  14. indeleble

    Hola, Marcelo.

    En mi debian lo solucioné así:

    en /etc/X11 te creas el directorio “xorg.conf.d” . Dentro de él te creas un archivo que se llame “synaptics.conf”, donde colocas todas las opciones del synaptics.

    Sigue estos post para mas informacion.

    http://foros.softonic.com/configuracion/problemas-synaptic-touchpad-debian-96067

    http://www.distrotest.es/?p=3332

    Responder

  15. alex

    Gracias…. el Touchpad de la lapto que uso se daño desde hace tiempo y a estas alturas no me permitia hacer nada, gracias a tu post parece que he podido solventar el problema.

    😀

    Responder

Deja un comentario