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 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»
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.
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… 😛
Lo que si he probado es que al desconectar el raton te quedas sin dispositivos de entrada, hasta que vuelves a poner el raton.
Te refieres a usando el método que propone Edu, ¿no?
Porque el otro funciona perfectamente, cuando desconectas el ratón activa el touchpad
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».
Reporta cualquier avance, Edu 😉
Pingback: meneame.net
Pingback: Mi batalla por abandonar Windows en favor de GNU/Linux :: GONZO
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!.
Le echaré un vistazo. Gracias 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!.
Gracias, esto anda que es una belleza, la única diferencia es que en vez de 85-hal.rules, mi archivo era 95-hal.rules.
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?
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
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.
😀
Deshabilitar el touchpad en MATE, comandos (terminal, Alt+F2): https://www.lawebdelprogramador.com/foros/Linux/1691612-Deshabilitar-el-touchpad-en-MATE-comandos-terminal-AltF2.html