Utilisez le trackpad pour ordinateur portable comme tablette graphique

15

Je suis intéressé par l'utilisation de mon trackpad d'ordinateur portable comme tablette graphique, c'est-à-dire en utilisant des coordonnées absolues plutôt que relatives, similaires à Inklet pour OSX.

La même question a été posée sur ubuntuforums.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 déterminer les termes de recherche à utiliser. J'ai recherché le `` mode absolu du pavé tactile pour ordinateur portable Linux '' et j'ai rencontré un problème avec les pilotes du pavé tactile qui mettaient le trackpad en mode absolu. mais je suis vraiment à la recherche d'un programme qui utilise les positions absolues plutôt qu'un réglage de pilote.

Barton Chittenden
la source
1
Voulez-vous cela pour Ubuntu exécuté sur un MacBook? Ou demandez-vous ou un moyen de le faire avec n'importe quel trackpad dans Ubuntu?
Eliah Kagan
Je cherche quelque chose qui peut fonctionner avec n'importe quel ordinateur portable.
Barton Chittenden
Les trackpads autres que ceux des MacBook récents sont-ils capables de cela? Cela semble être quelque chose de très dépendant de la polyvalence du périphérique d'entrée lui-même.
Eliah Kagan
1
Vous ne trouverez aucun programme capable de le faire. Sous Mac OS X, ce n'est pas le cas non plus, mais ils ont réussi à le masquer correctement (par exemple, changer de mode d'entrée en fonction de l'application en cours d'exécution). Relevant Q: comment lire les positions absolues du tap depuis le pavé tactile Cirque sous Linux
gertvdijk

Réponses:

8

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 evtestd'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-synapticspilote:

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 evdevpilote 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.confet 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.

gertvdijk
la source
C'est une bonne réponse mais ici la souris vient de geler ... (12.10)
desgua
@desgua Oui, c'est quelque chose à quoi s'attendre. Il n'a pas de valeurs d'entrée absolues ...
gertvdijk
1
Juste au cas où quelqu'un serait
Donarsson
1
MISE À JOUR: Ma demande de fonctionnalité a été rejetée et le responsable a déclaré qu'il "regrettait de l'avoir fusionnée en premier lieu". J'examinerai le code et le ferai probablement. Si je le fais, je posterai un dernier commentaire ici pour que toute personne intéressée puisse le voir. Désolé pour le spam.
Donarsson
0

Cela dépend fortement du matériel, je pense .. Votre trackpad doit supporter de donner la position absolue d'une touche. Un trackpad d'ordinateur portable normal agit plus comme une souris, ne fournissant que des informations sur la direction, la vitesse et l'accélération. Donc, partout où vous touchez, il ne se déplacera que dans la direction actuelle du curseur.

Gladen
la source
1
Ce n'est pas très vrai. X peut lire les positions car il peut détecter sur quel bord vous êtes pour faire défiler par exemple. Je crois que c'est plus un paramètre de configuration d'entrée X que nous manquons.
gertvdijk
Ouais, c'est aussi vrai .. Je ne sais pas exactement comment cela fonctionne, mais je pense que l'implémentation dans un trackpad est encore trop basique pour être utilisée comme tablette de dessin ..
Gladen