Gestos multitáctiles en el panel táctil

11

Quería saber cómo podría configurar gestos multitáctiles en Ubuntu. En Windows puedo hacer esto usando el software del controlador synaptics.

Ya he usado synclientpara configurar los grifos, la detección de palma, el desplazamiento, etc. Pero también quiero soporte para gestos. ¿Es incluso posible?

Información del sistema: Ubuntu 12.10, Synaptics clickpad

kapad
fuente
quería especificar algunos detalles: lo que quería hacer es poder configurar un gesto para el navegador / botones de retroceso / avance de nautilus. En Windows puedo hacer esto con solo deslizar tres dedos. Del mismo modo para minimizar / abrir todas las ventanas. En Win7, esto se puede hacer con un deslizamiento de cuatro dedos hacia arriba o hacia abajo. Quiero cosas similares a la Mac. es posible?
kapad

Respuestas:

11

La actualización 15/09/2016 Multitouch funciona de inmediato, y todas las soluciones enumeradas a continuación (mtrack, synclient, ginn, ...) arruinarán las cosas, así que si está actualizando desde un kernel anterior que las requiere, elimine todo las aplicaciones auxiliares e intente el comportamiento del núcleo listo para usar con la interfaz de usuario del panel táctil para su administrador de escritorio. Debe hacer lo que necesita, y si desea más gestos y otras cosas, agregue easystroke que funciona bien. Ahora está ordenado en los controladores de entrada de kernel de stock y funciona sin problemas ya que al menos el kernel 4.1.32, aunque algunos de los primeros kernel 4.0 no funcionarían. El kernel LTS actual, 4.4 funciona bien, al igual que 4.7.

actualización 9/2015 ... los núcleos superiores a 3.14 más o menos tienen la mayoría de multitouch incorporado ahora, así que intente desinstalar mtrack si tiene problemas. solo el controlador multitáctil incorporado y el easystroke me funcionan bien desde el kernel 3.14, aunque el 4.0 y versiones posteriores parecen tener una regresión que rompe el trackpad de Apple. 3.18 kernel funciona muy bien sin embargo.

Existen numerosas soluciones, la mayoría de las cuales aún están medio cocidas. Muchos de los documentados están desactualizados, así que asegúrate de mirar la fecha de lo que busques en Google.

Ubuntu ha incorporado compatibilidad con gestos rudimentarios (2 dedos) en el applet de configuración del mouse / touchpad.
Lo encontré aleteado al azar y el desplazamiento de dos dedos se atenuaría misteriosamente, dejándome en una larga cadena de google para quizás recuperarlo.
Luego probé touchegg, que a veces funcionaba.
Es el más fácil de configurar y hay buenas instrucciones, pero se basa en una solución daemon anterior al problema.
El tutorial de ubuntu multitouch (tendrás que buscarlo en Google ya que solo puedo incluir dos enlaces) estaba desactualizado pero se está trabajando lentamente. De alguna manera ofrece otro conjunto de soluciones irregulares, pero está en proceso de actualización.

La solución que estoy usando actualmente es mtrack (en los repositorios ) combinada con easystroke (tiene que compilar desde la fuente).
Mtrack admite la versión de kernel de multitouch en lugar de una solución ad hoc como touchegg y ginn si lo entiendo bien, pero easystroke es otra solución de daemon que parece funcionar bien por ahora además de mtrack.

El enfoque de Mtrack parece ser la dirección que está tomando el desarrollo.

desinstale las otras cosas (ginn, touchegg) si lo usa y luego instale mtrack desde el repos nombre completo es xserver-xorg-input-mtrack .

Es complicado configurarlo y no he conseguido deslizar tres dedos. Vea el enlace al final del hilo para los diversos archivos de configuración de las personas. Utilizo un trackpad mágico de Apple y es bastante bueno para eso, aunque tiene una falla molesta en ese doble toque y arrastre, por ejemplo, para mover una ventana es errático. la solución consiste en usar un botón real para mover ventanas o dudar una fracción de segundo después de tocar dos veces antes de mover la ventana.

Acabo de encontrar easystroke , y hasta que mtrack obtenga una interfaz gráfica de usuario, puede intentarlo si es lo suficientemente aventurero como para intentar compilar un programa.

una vez compilado ejecutando make -j2e instalado por sudo make install, comience easystroke -gpara obtener la GUI y vaya a la página wiki para obtener instrucciones.

Otro problema que puede necesitar resolver son los controladores.

Si usa mtrack , es posible que deba volver a numerar los archivos para que su controlador mtrack se lea en último lugar o la configuración de synaptics capturará todo.

Esos controladores se almacenan en /usr/share/X11/xorg.conf.d .

copie el controlador mtrack en /etc/X11/xorg.conf.d , edite la configuración en esa carpeta (vea el hilo vinculado y el archivo README para saber cómo) para obtener su bondad de tres dedos si puede (o use easystroke ), y cambie el nombre el archivo a un número más alto para que 50-mtrack.conf se convierta en 60-mtrack.conf , de lo contrario, descubrí que el controlador sináptico tomará su panel táctil la mitad del tiempo.

Poner el archivo en / etc significa que no se sobrescribirá en actualizaciones como los archivos / usr , y que se lee en último lugar y, por lo tanto, tiene prioridad sobre los controladores predeterminados en / usr .

Espero que esto ayude. Esta es un área de desarrollo bastante activo, por lo que cualquier cosa que escriba probablemente quedará obsoleta dentro de un año, con suerte para mejor.

Richard Rath
fuente
Hola, gracias por esta gran respuesta. Lo siento, me llevó un tiempo comprobarlo :)
kapad
¿Alguna noticia sobre una solución adecuada sobre este asunto? Todavía no puedo hacer que funcione aceptable ..
tomyo
Parece que hay un paquete de easystroke hoy en día, y no conoce la opción -g. Sin embargo, sin el argumento, se inicia una GUI. :) PD: Ejecuto Mint 16.
Herbert
2

Solo quería sugerir el uso de mi continuación de mtrack disponible en github: https://github.com/p2rkw/xf86-input-mtrack , ya que admite el arrastre de 3 dedos (instrucciones en la parte inferior del archivo Léame).

También lo estoy usando junto con easystroke, pero tuve que modificar easystroke para eliminar algunas restricciones sobre dispositivos absolutos, con este simple cambio (no recuerdo la razón exacta para hacerlo, lo siento):

diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
        }
 protected:
        void move_back() {
-               if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+               if (!prefs.move_back.get())
                        return;
                XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
        }

También reduje el margen de error para los gestos:

diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
                return -1;
        score = MAX(1.0 - 2.5*cost, 0.0);
        if (a->timeout)
-               return score > 0.85;
+               return score > 0.95;
        else
-               return score > 0.7;
+               return score > 0.92;
 }

... y funciona muy bien.

Nota al margen sobre la configuración dolorosa: puede usar xinput para configurarlo sobre la marcha, luego editar xorg.conf en consecuencia o crear un script de inicio con invocaciones de xinput.

p2rkw
fuente