web-dev-qa-db-fra.com

Utilisez le trackpad pour ordinateur portable comme tablette graphique

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.

15
Barton Chittenden

Regardez les pilotes, pas les applications

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:

  • Les pavés tactiles rapportant les données de positions absolues sont convertis par le pilote Xorg en mouvement relatif pour les applications. Une application régulière ne peut pas communiquer directement avec le pavé tactile (de par sa conception), vous devez donc réellement rechercher une solution dans le pilote.
  • Les pavés tactiles capables à la fois de modes relatifs et absolus nécessitent la commutation de modes, très spécifiques au matériel et non compatibles avec les applications.
  • Certains pavés tactiles plus élémentaires n'ont pas la capacité de signaler les positions absolues.

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.

Pilote de base du système: evdev

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.

Ligne de fond: créer une demande de fonctionnalité

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.

8
gertvdijk

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.

0
Gladen