Je souhaite utiliser le trackpad de mon ordinateur portable comme tablette graphique, c'est-à-dire utiliser des coordonnées absolues plutôt que relatives, comme Inklet pour OSX.
La même question a été posée dans buntuforums.org en mai 2010, mais la question n'a jamais reçu de réponse. Je me demande si cela a été fait sous Linux. J'essaie également de comprendre quels termes de recherche utiliser. J'ai cherché 'mode absolu de touchpad d'ordinateur portable de linux', et est venu avec n problème avec des conducteurs de pavé tactile qui a mis le trackpad en mode absolu. mais je recherche vraiment un programme qui utilise les positions absolues plutôt qu'un paramètre de pilote.
Vous ne trouverez pas de programme faisant cela, à cause de ces trois types de pavés tactiles que les pilotes essaient d’abstraire en une seule représentation aux applications:
Malheureusement, même si vous avez un pavé tactile capable de signaler toutes les valeurs absolues, la plupart des pilotes de pavé tactile ne vous permettent pas de les utiliser dans des applications Linux. Les données absolues sont vraiment là, car le pilote peut détecter si vous le touchez sur les bords pour le défilement par exemple. Testez-le vous-même en utilisant evtest
dans 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é récemment supprimée par this commit dans le pilote xf86-input-synaptics
:
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.
La seule façon pour moi de penser que cela est possible pour le moment sous Linux consiste à utiliser le pilote evdev
sous Xorg. C'était 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 le fait pas, mais le pilote evdev le fait. Vous devez donc configurer votre serveur X pour qu'il utilise plutôt 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 une version ultérieure.
Section "InputClass" Identifier "evdev touchpad" MatchIsTouchpad "on" Driver "evdev" Option "Mode" "absolute" EndSection
Enregistrez ceci 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 dans les événements, mais encore une fois, ces 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 à deux doigts, de toucher, etc.
Je vois de la place pour une demande de fonctionnalité sur le gestionnaire de bogues en amont pour le pilote synaptics (et éventuellement d’autres). Il serait très utile d’avoir une interface dans Xorg pour pouvoir lire les valeurs de position absolue du pavé tactile. Les principaux bloqueurs que je vois sont que cela pourrait être très spécifique au matériel et donc difficile à mettre en œuvre.
Je pense que les entretiens avec Joe Shaw et Peter Hutterer pourraient également être très utiles pour connaître l’historique de cette activité, comment en faire une excellente demande de fonctionnalité et ce à quoi elle doit s’attendre.
Cela dépend fortement du matériel, je pense .. Votre trackpad doit supporter de donner la position absolue d'un contact. Un trackpad normal pour ordinateur portable se comporte plutôt comme une souris et ne fournit que des informations sur la direction, la vitesse et l'accélération. Ainsi, quel que soit l'endroit où vous touchez, il se déplacera uniquement à partir de la direction actuelle du curseur.