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-synaptics
controlador:
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 evdev
controlador 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.conf
y 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.