Regardez les pilotes, pas les applications
Vous ne trouverez pas de programme faisant cela, en raison de ces trois types de pavés tactiles que les pilotes essaient d'abstraire à une seule représentation des applications:
- Les pavés tactiles rapportant des données de positions absolues sont en cours de conversion par le pilote Xorg en mouvement relatif pour les applications. Une application standard ne peut pas parler directement au touchpad (par conception), vous devez donc vraiment chercher une solution dans le pilote.
- Les pavés tactiles capables à la fois de modes relatifs et absolus nécessitent une commutation de modes, ce qui est très spécifique au matériel et non adapté aux applications.
- Certains pavés tactiles plus basiques n'ont pas la capacité de signaler les positions absolues.
Malheureusement, même si vous avez un pavé tactile à peu près capable de signaler toutes les valeurs absolues, la plupart des pilotes du pavé tactile ne vous permettent pas de les utiliser dans les applications Linux. Les données absolues sont vraiment là, car le conducteur peut détecter si vous les touchez sur les bords pour faire défiler par exemple. Testez-le par vous-même à l'aide evtest
d'un terminal virtuel (pour suspendre X). Mon pavé tactile Synaptics indique les positions absolues comme suit:
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 possibilité de mettre un périphérique Synaptics en mode absolu dans Xorg a été supprimée récemment par ce commit dans le xf86-input-synaptics
pilote:
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.
Pilote de base à l'échelle du système: evdev
La seule façon dont je vois que cela est possible en ce moment sous Linux est d'utiliser le evdev
pilote dans Xorg. Il a été discuté en 2010 sur la liste de diffusion Xorg (un extrait ci-dessous):
Je dois obtenir la position absolue d'un doigt sur le pavé tactile plutôt qu'un simple mouvement relatif.
le pilote synaptics ne fait pas cela, mais le pilote evdev le fait. Vous devez donc configurer votre serveur X pour utiliser à la place le pilote evdev pour le pavé tactile. L'extrait de configuration suivant le fera pour vous à condition que vous exécutiez le serveur 1.8 ou version ultérieure.
Section "InputClass"
Identifier "evdev touchpad"
MatchIsTouchpad "on"
Driver "evdev"
Option "Mode" "absolute"
EndSection
Enregistrez-le sous /etc/X11/xorg.conf.d/99-evdev-touchpad.conf
et redémarrez le serveur. Notez que cela ne change que le comportement du pavé tactile lui-même, pas les données des événements, mais encore une fois, les données sont toujours absolues de toute façon. De plus, en utilisant evdev au lieu de synaptics, vous perdez la possibilité de faire défiler, toucher, etc. avec deux doigts.
Conclusion: créer une demande de fonctionnalité
Je vois de la place pour une demande de fonctionnalité sur le bugtracker en amont pour le pilote synaptics (et peut-être d'autres). Il serait très utile d'avoir une interface dans Xorg pour pouvoir lire les valeurs de position absolue du touchpad. Les principaux bloqueurs que je vois sont que cela peut être très spécifique au matériel et donc difficile à mettre en œuvre.
Je pense que parler à Joe Shaw et Peter Hutterer pourrait également être d'une grande valeur pour voir quel est l'historique exactement, comment en faire une excellente demande de fonctionnalité et à quoi s'attendre.