Que a la mayoría no nos gusta la "jugada" que hizo MSI al cambiar el touchpad Synaptics para abaratar costes no es un secreto. Que yo personalmente no compré uno (un MSI Wind U100-2 en Alternate) el pasado viernes teniéndolo en la mano por esta misma razón (el pésimo touchpad) lo tengo claro.
Pero no creí que alguien se atreviera a abrir el MSI y cambiar el touchpad interno por uno de la propia Synaptics. No por no abrirlo, sino porque ha tenido que comprarlo; aunque el coste total han sido 13 dólares con gastos de envío (desde Asus USA.



Pero no contentos con eso los hay que también van un poco más allá y deciden que prefieren tener dos botones en lugar de uno en el touchpad.
Y la forma más sencilla, es simplemente crearlo uno mismo, partiendo del original. Y lo de "partiendo" es literal. En dos, con un cutter. Así de fácil.
Otra modificación que no es excesivamente complicada, aunque los resultados son algo "espartanos).


Via Liliputing.
Leer mas
martes, 9 de diciembre de 2008
Dos modificaciones en el touchpad del MSI Wind: Synaptics con dos botones
Publicado por
frames
en
4:44
16
comentarios
Etiquetas: Moding, MSI Wind U100, Synaptics, Touchpad
martes, 26 de agosto de 2008
Multitouch en touchpads Synaptics

En mi última entrada sobre el controlador Synaptics (Control total del driver Synaptics en GTK), os hacía un resumen con un par de ejemplos prácticos sobre cómo controlar los eventos que envia el driver y adaptarlos a nuestras necesidades. La mención a GTK venía dada porque el frontend gráfico que controla el driver en Gnome tiene algunas carencias (no controla todos los parámetros).
En los comentarios, josvazg me preguntaba si esa configuración era "multitouch".
La respuesta rápida (y correcta) es: sí, es multitouch. La respuesta completa es: si, el multitouch, pero no como tú quieres.
Es multitouch porque precisamente Synaptics frente a otros controladores (como el Sentelic del MSI Wind que mencionaba en la entrada), acepta parámetros avanzados que permiten el reconocimiento de la presión de dos o más dedos, e incluso reconocer la palma de la mano frente a un dedo, para evitar el movimiento del puntero si hemos puesto la mano encima sin querer.
Si leemos el manual del driver en XOrg/XFree86, nos dice que:
Por defecto, un touchpad Synaptics opera en modo compatible emulando un ratón estándar. Sin embargo, usando un driver dedicado, se dispone de características más avanzadas, como:En mi anterior entrada apenas hemos tocado un par de parámetros de todos los mencionados arriba. Mencionábamos que podíamos hacer scroll vertical y horizontal (aunque no vimos cómo), y que podíamos intercambiar los botones (4 y 5) para emular los botones central y derecho simplemente haciendo tapping (presión) con dos o tres dedos. Este último punto ya significa que tenemos multitouch. Pero hay más.Nótese que dependiendo del firmware del touchpad, alguna de estas características pueden estar disponibles incluso sin usar el driver synaptics. Nótese también que algunas funciones no están disponibles en todos los modelos de touchpads, porque necesitan tener soporte de hardware/firmware (por ejemplo para la presión de varios dedos).
- Movimiento con aceleración y velocidad ajustables no lineales.
- Eventos de botón a través de toques cortos del touchpad.
- Eventos de botón dobles a través de toques cortos dobles sobre el touchpad.
- Arrastre a través de toques cortos y mantenimiento del dedo en el touchpad.
- Eventos de botón central y derecho en la esquina superior o inferior del touchpad.
- Scroll vertical (eventos en los botones 4 y 5) al mover el dedo en el lateral derecho del touchpad.
- El botón arriba/abajo envía eventos 4 y 5.
- Scroll horizontal (eventos en los botones 6 y 7) moviendo el dedo en la parte inferior del touchpad.
- Los multibotones envían eventos 4 y 5 para hacer scroll vertical y 6/7 para hacer scroll horizontal.
- Detección de dedos ajustable.
- Pulsaciones con varios dedos: dos dedos para el botón central y tres dedos para el botón derecho (necesita soporte de hardware, no todos los modelos implementan esta característica).
- Velocidad de movimiento dependiente de la presión.
- Configuración en tiempo real usando memoria compartida. Lo que significa que puedes cambiar la configuración de los parámetros sin reiniciar el servidor X.
El toque con dos dedos para emular el botón derecho de un ratón lo resolvimos con el siguiente parámetro en xorg.conf:
Option "TapButton2" "3"Para el toque con tres dedos para emular el botón central del ratón usamos el siguiente parámetro en el mismo fichero:
Option "TapButton3" "2"Os animo a que investigueis el manual del driver (usando man synaptics) para que veais que es posible configurar cosas como la duración máxima en tiempo (en milisegundos) para detectar una pulsación (con MaxTapTime), la activación o desactivación del scroll vertical (VertEdgeScroll) u horizontal (HorizEdgeScroll), la definición de las áreas de pulsación, de scroll, el factor mínimo de aceleración (MinSpeed), el máximo (MaxSpeed), el factor global de aceleración (AccelFactor) ... y otros muchos parámetros.
Scroll con dos dedos
Por ejemplo, una de las cosas que no comenté tiene que ver también con el multitouch: el parámetro VertTwoFingerScroll permite activar o desactivar el scroll vertical utilizando dos dedos sobre cualquier parte del pad. Análogamente, HorizTwoFingerScroll hace lo mismo, pero con el scroll horizontal. Pero es que además podemos controlar la cantidad de movimiento usando los parámetros VertScrollDelta y HorizScrollDelta para los dos parámetros anteriores, respectivamente.
No puedo entrar en esta entrada en todas las posibilidades disponibles, pero de nuevo os invito a leer el manual, mi entrada anterior, y experimentar con las posibilidades que más os convengan a cada uno.
Swipe & Pinch
Lo que sí haré es terminar mencionando un artículo que cubre la parte de la pregunta de josvagz que no funciona simplemente con el driver original: "Añade suporte de gestos multitoque a un portátil equipado con touchpad", de IBM, que mediante algunos scripts de Perl y synaptics permite hacer "swipping" y "pinching" de la forma en que muestra el siguiente video:
Se que hay muchas otras cosas que se podrían hacer, pero permitidme que, al menos por ahora, y hasta que pueda jugar con ellas, lo dejemos aquí. Leer mas
Control total del driver Synaptics en GTK
Hace ya más de ocho meses (y parece que fue ayer) os adelantaba las ventajas de usar tres programas para controlar el mousepad de los ultraportátiles en Linux.
La mayoría de los sistemas físicos de control del puntero en los netbooks tienen unos botones bastante mejorables: duros y con un clic demasiado ruidoso. Además, no disponen de un botón central. Con estos programas se pueden solventar estos tres problemas y controlar estos (y muchos más) parámetros en el control del mousepad.
GSynaptics
El problema es que, a día de hoy, los que usen Gnome en sus portátiles verán que GSynaptics (el programa de esos tres para GTK) no tiene el mismo rango de opciones que tienen QSynaptics o KSynaptics. Por ejemplo, no es posible reasignar el uso del tapping (hacer clic con la presión de los dedos en la superficie de control) con uno o varios dedos para emular los botones izquierdo, derecho o central.
Premisas
La idea de esta entrada es contaros cómo controlar todos los parámetros de control del mousepad partiendo de una instalación limpia de Ubuntu GNU/Linux como ejemplo, sobre un portátil con un controlador Synaptics (la mayoría de los ultraportátiles tienen un controlador de esa marca).
Desgraciadamente no dispongo de un netbook de cada marca, por lo que no puedo asegurar que funcione en todas las marcas y modelos. Lo que si os puedo indicar es que los MSI Wind que se están vendiendo con un touchpad Sentelic, marca en la que no deberá funcionar lo que explico aquí, y cuyo controlador tiene unos parámetros mínimos. Muy mínimos.
Por tanto, los requisitos mínimos iniciales para aplicar lo visto aquí son simplemente: disponer de un portátil con un controlador Synaptics y usar un sistema operativo como Linux, compatible con dicho controlador en XOrg/XFree86.
¿Qué quiero conseguir? Básicamente configurar un touchpad para:
- No tener que usar los botones físicos para hacer clic.
- No tener que usar los botones físicos para hacer scroll.
- En general, poder configurar cualquier parámetro del controlador Synaptics a nuestro gusto.
Opciones iniciales
Las opciones configuradas por defecto (de las que me interesan) son las siguientes:
- Scroll vertical: con la parte derecha del mousepad.
- Scroll horizontal: no activado.
- Tapping con un dedo: clic con el botón izquierdo.
- Tapping con dos dedos: clic con el botón central.
- Tapping con tres dedos: clic con el botón derecho.
Hay muchas otras opciones como el scroll con dos y tres dedos que yo personalmente no utilizo, que están desactivadas, pero que también se pueden configurar, como veremos más abajo.
Programa de configuración del ratón de Ubuntu
En Gnome podemos acceder a la configuración del touchpad en:
Sistema > Preferencias > Ratón y pulsando en la pestaña "Touchpad", como se puede ver en la imagen:
Es justo aquí donde vamos a realizar el primer cambio: simplemente marcando la casilla "Habilitar desplazamiento vertical". Así de sencillo. En cuanto lo hagamos y pulsemos en "Cerrar", podremos desplazarnos en horizontal con el ratón.
Fácil, ¿verdad? Pues sí. En realidad lo mismo se puede conseguir con las modificaciones que os contaré en el apartado "Synclient", pero como en este caso voy a lo sencillo, lo dejo aquí.
Synclient
Synclient es el programa que "muestra y modifica los parámetros del driver del Touchpad Synaptics para XOrg/XFree86 en tiempo real". Hay tres opciones que nos pueden interesar especialmente:
El parámetro -m nos permite conocer en tiempo real diversos valores como la presión, número de dedos o ancho del dedo que presiona el touchpad en un momento determinado. No entraré a explicarlos. Si tienes curiosidad, puedes consultar las opciones con "man synclient".
El parámetro -l nos muestra cómo están configurados en el momento de ejecución todos los parámetros posibles. Con lo que además sabemos qué podemos configurar. La siguiente captura de pantalla muestra las primeras (hay más) opciones mostradas con este parámetro:

Y finalmente, var=value nos permite usar cada uno de esos parámetros (var, variable) y asignarles un valor (value). Es decir, que nos permite cambiar los parámetros para irlos probando hasta encontrar el valor que nos guste para cada caso.
Si queremos usar synclient (o Gsynaptics, Ksynaptics o Qsynaptics), deberemos añadir el parámetro SHMConfig a la configuración de XOrg. Si no lo hacemos e intentamos usarlo, veremos algo como esto:
frames@ubuntu:~$ synclient -m .5 w
Can't access shared memory area. SHMConfig disabled?Para ello, debemos editar el fichero xorg.conf. Hay que hacerlo como root, por ejemplo con:
$ sudo vi /etc/X11/xorg.confY simplemente introducir la opción SHMConfig con el valor On en la sección InputDevice dedicada a Synaptics, que quedará más o menos como sigue:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizEdgeScroll" "0"
Option "SHMConfig" "on"
EndSectionPara que surta efecto el cambio, hemos de salir de Gnome y volver a entrar.
Para simular el botón derecho del ratón con un toque (tapping) con dos dedos, y el botón central con tres, haremos:
$ synclient TapButton2=3
$ synclient TapButton3=2Tras ello, podemos probar el efecto pulsando con esos dos o tres dedos encima de, por ejemplo, una página web en Firefox.
Si hubieramos tecleado "synclient -l" antes de este cambio, habríamos visto entre los parámetros:
TapButton1 = 1
TapButton2 = 2
TapButton3 = 3Y tras el cambio deberán estar como:
TapButton1 = 1
TapButton2 = 3
TapButton3 = 2Como referencia, el listado completo de parámetros posibles es el siguiente:
$ synclient -l
Parameter settings:
LeftEdge = 1872
RightEdge = 5072
TopEdge = 1712
BottomEdge = 4144
FingerLow = 25
FingerHigh = 30
FingerPress = 256
MaxTapTime = 180
MaxTapMove = 220
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 0
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 257
VertScrollDelta = 60
HorizScrollDelta = 80
VertEdgeScroll = 1
HorizEdgeScroll = 1
CornerCoasting = 0
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
MinSpeed = 0.0822368
MaxSpeed = 0.197368
AccelFactor = 0.00164474
TrackstickSpeed = 40
EdgeMotionMinZ = 30
EdgeMotionMaxZ = 160
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 304
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 = 3
TapButton3 = 2
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 = 1Con el manual de synaptics o en esta página (por ejemplo) podreis ver (en inglés) cual es el significado de cada uno de estos parámetros.
XOrg.conf
Una vez encontremos los parámetros que nos gustan, lo ideal sería trasladarlos al fichero xorg.conf, en la misma sección que hemos tocado anteriormente, tal cual nos presente los valores "synaptics -l". Cuando acabemos, también sería conveniente descomentar (con un # al principio de la línea) o mejor aún, poner a "Off" el parámetro SHMConfig.
Recomiendo esto por dos razones: primero, porque al reiniciar no se perderán los cambios, y segundo porque si pemitimos usar SHMConfig, cualquier usuario del ordenador podrá cambiar los parámetros vistos en tiempo real.
Siguiendo el ejemplo anterior, la sección vista quearía como sigue:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizEdgeScroll" "0"
Option "TwapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "SHMConfig" "off"
EndSectionSi queremos que los cambios con synclient queden activos tras reiniciar y no usar xorg.conf, deberemos hacer lo siguiente (SHMConfig tiene que estar configurado a on en xorg.conf):
- Ir a Sistema > Preferencias > Sesiones
- En la pestaña "Programas de inicio" pulsar el botón "Añadir"
- En "Orden introducir "syndaemon -i 1 -d" y poner el Nombre y Comentario que más nos guste ("Syndaemon" y "Demonio de Synaptics" respectivamente, por ejemplo).
- Aceptar y cerrar.
Bonus: Syndaemon
Habrás visto que hemos usado otro comando en este último caso. En este caso estamos haciendo lo siguiente:
La opción -d hace que syndaemon se ejecute como aplicación de fondo.
La opción -ix hace que se active el mousepad después de x segundos (en este caso 1) tras dejar de usar el teclado. El valor por defecto son 2 segundos.
Es decir, que con Syndaemon podemos, además, hacer que mientras que el teclado se utilice, no se pueda usar el touchpad por error y configurar cuánto deberemos esperar tras dejar de usar el teclado para que el touchpad vuelva a responder. Si echais un ojo al manual de syndaemon, también podremos por ejemplo desactivar sólo el "tapping" y el "scroll" mientras usamos el teclado (el puntero seguirá moviéndose).
Y ahí lo dejo. Me ha quedado una entrada mucho más larga de lo que me imaginaba, pero espero que sea de interés, lo suficientemente clara y sin errores.
Nota final y recordatorio: para utilizar synclient, syndaemon, gsynaptics, qsynaptics o ksynaptics, debemos tener activada la opción SHMConfig como se explica arriba. De nuevo, si lo hacemos, cualquier usuario podrá modificar los parámetros que permite el driver synaptics. Si aplicamos los parámetros al fichero de configuración de las X no hace falta que SHMConfig esté activado. Leer mas
martes, 11 de diciembre de 2007
Mejora la utilidad del mouse pad del Eee PC con el driver de synaptics
Cuatro de las quejas más comunes que he leído en las diferentes revisiones del Eee PC que he leído tienen que ver con el mousepad incluido. A saber:
- Que es pequeño y se toca facilmente mientras se escribe, creando movimientos del cursor involuntarios.
- Que hay acciones mezcladas en un sólo botón físico: pulsación izquierda, derecha (y creo que central emulada).
- Que el botón es ruidoso, haciendo un click bastante audible y molesto.
- Que la pulsación de los botones no es ergonómica, teniendo que hacer más fuerza de la deseable, al menos al principio de su uso.
Las buenas noticias son que el touchpad del Eee PC está basado en el driver Synaptics, y que mediante él creo que podreis solucionar esas cuatro pegas sin demasiados inconvenientes.
El driver synaptics es muy común en los portátiles. La inmensa mayoría de los dispositivos de puntero de cualquier portátil que compreis hoy en día están basados en él. Pero lo que aquí nos interesa son sus posibilidades. Este driver permite hacer cosas como:
- Tapping, permitiendo hacer click "pulsando" en el pad. Es decir, lo mismo que si pulsaramos el botón físico, pero simplemente presionando en la "almohadilla". Es más, es posible definir qué acción realiza pulsar con un dedo, con dos o con tres. También es posible emular un doble click, simplemente presionando dos veces.
- Scrolling, permitiendo el desplazamiento rápido en pantalla tanto en vertical como en horizontal, así como en círculo.
- Funciones "avanzadas", como la eliminación temporal del pad mientras escribimos, para evitar pulsar o mover el puntero mientras utilizamos el teclado. Además, se puede definir la sensibilidad del pad, definir regiones, ...
Como siempre en Linux, disponemos de varios interfaces gráficos para controlar el comportamiento de este driver: gsynaptics, QSynaptics y KSynaptics. Y como también suele ocurrir, podemos cambiar la configuración del fichero
xorg.conf manualmente si no queremos hacer uso de ninguno de estos frontends gráficos.


GSynaptics está más indicado para entornos basados en GTK (como Gnome), mientras que QSynaptics y KSynaptics están basados en QT, siendo KSynaptics la opción natural para escritorios KDE, entre otras cosas porque está integrado en el KControl Center. Qsynaptics es un tanto "especial" porque no usa libsynaptics realmente, ni el driver synaptics.
Como nota aparte, se me escapa el porqué de la elección, pero el Eee PC viene con gsynaptics instalado. El caso es que cualquiera de los tres es bastante sencillo de configurar y nos valdrá para el propósito de esta entrada.
Ahora mismo estoy usando Ksynaptics en Kubuntu y para mover el puntero, hacer click, copiar y pegar, moverme por las páginas web ... solamente utilizo el mouse pad. No necesito los botones. En mi caso concreto uso lo siguiente:
- Una pulsación sobre el pad equivale al botón izquierdo.
- Una pulsación sobre el pad, mantener el dedo y moverlo equivalen a seleccionar y arrastrar.
- Una pulsación con dos dedos sobre el pad equivale al botón derecho.
- Una pulsación con tres dedos sobre el pad equivale al botón central.
- Una doble pulsación es un doble click del botón izquierdo.
- Al escribir, el pad se desactiva. Al terminar de escribir, se activa de nuevo automáticamente.
- Al pulsar sobre el lateral derecho del pad y mover el dedo arriba y abajo, tengo desplazamiento vertical.
- Al pulsar sobre el lateral inferior del pad y mover el dedo a derecha e izquierda, tengo desplazamiento horizontal.
Con eso tengo suficiente para todo lo que necesito, y me gusta maś que usar un ratón USB. Pero no hay mejor cosa que lo probeis por vosotros mismos, así que os dejo que investigueis cuales son las opciones que más os gustan. Leer mas