Use el trackpad de la computadora portátil como tableta gráfica

15

Estoy interesado en usar el trackpad de mi computadora portátil como tableta de dibujo, es decir, usar coordenadas absolutas en lugar de relativas, similar a Inklet para OSX.

La misma pregunta se hizo en ubuntuforums.org en mayo de 2010, pero la pregunta nunca fue respondida. Me pregunto si esto se ha hecho en Linux. También estoy tratando de averiguar qué términos de búsqueda usar. Busqué el 'modo absoluto del panel táctil de la computadora portátil Linux' y se me ocurrió un problema con los controladores del panel táctil que pusieron el panel táctil en modo absoluto. pero realmente estoy buscando un programa que use las posiciones absolutas en lugar de una configuración de controlador.

Barton Chittenden
fuente
1
¿Quieres esto para Ubuntu que se ejecuta en una MacBook? ¿O estás preguntando o una forma de hacer esto con cualquier trackpad en Ubuntu?
Eliah Kagan
Estoy buscando algo que pueda funcionar con cualquier computadora portátil.
Barton Chittenden
¿Los trackpads distintos de los de MacBooks recientes son capaces de esto? Esto parece algo muy dependiente de la versatilidad del dispositivo de entrada en sí.
Eliah Kagan
1
No encontrará un solo programa que pueda hacer esto. En Mac OS X, este tampoco es el caso, pero han logrado ocultarlo correctamente (por ejemplo, cambiar el modo de entrada en función de la aplicación en ejecución). Q relevante: cómo leer las posiciones absolutas de tap desde el panel táctil de Cirque en Linux
gertvdijk

Respuestas:

8

Mire los controladores, no las aplicaciones.

No encontrará un programa que haga esto, debido a estos tres tipos de paneles táctiles que los controladores intentan abstraer en una única representación para las aplicaciones:

  • Los controladores táctiles que informan datos de posiciones absolutas están siendo traducidos por el controlador Xorg al movimiento relativo de las aplicaciones. Una aplicación normal no puede comunicarse directamente con el panel táctil (por diseño), por lo que realmente debe buscar una solución en el controlador.
  • Los paneles táctiles capaces de modos relativos y absolutos necesitan cambiar de modo, lo cual es muy específico del hardware y no es consciente de la aplicación.
  • Algunos paneles táctiles más básicos no tienen la capacidad de informar las posiciones absolutas.

Desafortunadamente, incluso si tiene un panel táctil bastante capaz de informar todos los valores absolutos, la mayoría de los controladores de panel táctil no le permiten usarlos en aplicaciones Linux. Los datos absolutos están realmente allí, ya que el controlador puede detectar si los está tocando en los bordes para desplazarse, por ejemplo. Prueba esto por ti mismo usandoevtest una terminal virtual (para suspender X). Mi panel táctil Synaptics informa las posiciones absolutas de la siguiente manera:

Event type 3 (EV_ABS)
  Event code 0 (ABS_X)
    Value   3332
    Min     1472
    Max     5648
    Fuzz       8
    Resolution      39
  Event code 1 (ABS_Y)
    Value   2017
    Min     1408
    Max     4806
    Fuzz       8
    Resolution      79

La capacidad de poner realmente un dispositivo Synaptics en modo absoluto en Xorg se ha eliminado recientemente por esta confirmación en el xf86-input-synapticscontrolador:

Remove absolute mode

Moving a touchpad in absolute mode is unusual - touchpads are disconnected
from the output device, so direct interaction is hard. There appears to be
little usage of it (I haven't seen bug reports from people claiming to use
it). Joe Shaw, author of the code and only known user doesn't have a use for
it anymore, so purge it from the repo.

Controlador básico de todo el sistema: evdev

La única forma en que veo que esto es posible en este momento en Linux es usando el evdevcontrolador en Xorg. Fue discutido en 2010 en la lista de correo de Xorg (un extracto a continuación):

Tengo que obtener la posición absoluta de un dedo en el panel táctil en lugar de solo un movimiento relativo.

el controlador synaptics no hace esto, pero el controlador evdev sí. Por lo tanto, debe configurar su servidor X para utilizar el controlador evdev para el panel táctil. El siguiente fragmento de configuración lo hará por usted siempre que esté ejecutando el servidor 1.8 o posterior.

Section "InputClass"
    Identifier "evdev touchpad"
    MatchIsTouchpad "on"
    Driver "evdev"
    Option "Mode" "absolute"
EndSection

Guarde esto como /etc/X11/xorg.conf.d/99-evdev-touchpad.confy reinicie el servidor. Tenga en cuenta que esto solo cambia el comportamiento del panel táctil en sí, no los datos en los eventos, pero de todos modos, esos datos siempre son absolutos. Además, al usar evdev en lugar de synaptics, está perdiendo la capacidad de desplazamiento con dos dedos, tapping, etc.

En pocas palabras: crear una solicitud de función

Veo espacio para una solicitud de función en el bugtracker ascendente para el controlador synaptics (y posiblemente otros). Sería muy útil tener una interfaz en Xorg para poder leer los valores de posición absolutos del panel táctil. Los principales bloqueadores que veo es que esto podría ser muy específico del hardware y, por lo tanto, difícil de implementar.

Creo que hablar con Joe Shaw y Peter Hutterer también podría ser de gran valor para ver cuál es exactamente la historia de esto, cómo hacer que sea una gran solicitud de características y qué esperar de ella.

gertvdijk
fuente
Es una buena respuesta, pero aquí el mouse se congeló ... (12.10)
desgua
@desgua Sí, eso es mucho más que esperar. No tiene ningún valor de entrada absoluto ...
gertvdijk
1
En caso de que alguien todavía esté interesado en esto, presenté un error: bugs.freedesktop.org/show_bug.cgi?id=75322
Donarsson
1
ACTUALIZACIÓN: Mi solicitud de función fue rechazada y el responsable de mantenimiento declaró que "lamenta haberse fusionado en primer lugar". Examinaré el código y probablemente lo bifurcaré. Si lo hago, publicaré un último comentario aquí para que cualquier persona interesada en él pueda verlo. Perdón por el spam.
Donarsson
0

Creo que eso depende en gran medida del hardware. Su trackpad debe admitir regalar la posición absoluta de un toque. Un trackpad para computadora portátil normal actúa más como un mouse, solo proporciona información de dirección, velocidad y aceleración. Entonces, donde sea que toque, solo se moverá desde la dirección actual del cursor.

Gladen
fuente
1
Eso no es muy cierto. X puede leer las posiciones, ya que puede detectar en qué borde estás para desplazarte, por ejemplo. Creo que es más un parámetro de configuración de entrada X que nos estamos perdiendo.
gertvdijk
Sí, eso también es cierto ... No estoy exactamente seguro de cómo funciona, pero creo que la implementación en un trackpad todavía es demasiado básica para usarla como tableta de dibujo ...
Gladen