J'ai une carte NVidia GTX260 avec un écran normal au-dessus d'un écran tactile utilisant le pilote eGalax.
J'ai essayé de configurer l'écran tactile avec xinput, mais je ne parviens pas à le comprendre correctement. Lorsque l'écran normal est déconnecté et que vous modifiez l'option "Evdev Axis Calibration", tout fonctionne correctement, mais lorsque je reconnecte l'écran normal, le mappage difficile est déplacé. Si je touche l'écran tactile, la souris se déplace à la position correspondante sur l'autre écran.
Ni "matrice de transformation de coordonnées" ni "carte vers sortie" ne semblent fonctionner ...
Toute aide est grandement appréciée!
/ Henrik
Maintenant (le 13.04), j’avais un problème similaire, mais xinput map-to-output
m'aidait, si je faisais les choses dans le bon ordre.
xinput map-to-output
peaufine la "matrice de transformation de coordonnées".xinput_calibrator
définit "Etalonnage d'axe Evdev" et ignore complètement "la matrice de transformation de coordonnées". En outre, il s'ouvre toujours dans toute l'étendue de la zone de sortie disponible.
Cela signifie que vous devez exécuter xinput_calibrator
sur un seul écran.
xrandr --output <non-touch-output> --off
xinput map-to-output <touch input device> <touch-output>
(pour réinitialiser la "matrice de transformation de coordonnées" si vous l'avez déjà touchée).
Calibrer avec xinput_calibrator
.
Vous devriez maintenant avoir une touche bien calibrée sur l’écran unique.
(Mon écran tactile était initialement bien éteint - X/Y échangé, Y inversé - je devais donc l'exécuter deux fois, avec --misclick 0
. Je crois que c'est une propriété de mon écran tactile, sans rapport avec le double moniteur situation.)
Réactivez le deuxième écran.xrandr --output <non-touch-output> --on
Refaites map-to-output
.
pour moi avec Ubuntu 12.04 LTS (64bits), il n’a pas travaillé tant que j’ai vu dans le xinput --help que la bonne commande est
xinput map-to-crtc 'Nom du périphérique d'entrée' Nom du périphérique de sortie
alors que le nom du périphérique d'entrée est indiqué par $ xinput --list, le nom du périphérique de sortie est indiqué par $ xrandr et peut être LVDS1 ou VGA1, par ex.
Tandis que réponse de Beni fonctionnera probablement pour certaines personnes (sinon la plupart), dans mon cas, xinput_calibrator
était toujours en train de devenir confus, bien que les autres écrans soient désactivés. Je n'aimais pas non plus l'installation de pilotes à source fermée du fournisseur.
Heureusement, en utilisant les informations contenues dans ce même QA et dans d’autres sources ( la documentation EVDEV xorg , et cette réponse ), il s'avère tout à fait possible de tout configurer manuellement tant que vous utilisez EVDEV et Xorg (par défaut pour Kubuntu au moins) .
xinput --list
. Cela sera appelé <DEVICE_ID>
.xinput --list-prop <DEVICE-ID>
et notez les valeurs par défaut au cas où.xinput --set-prop <DEVICE_ID> "Evdev Axes Swap" 1
. Sinon, laissez cette propriété inchangée.Evdev Axis Inversion
, avec deux valeurs - X Y
, où 0 est normal et 1 inversé. Alors:xinput --set-prop <DEVICE_ID> "Evdev Axis Inversion" 1 0
.Evdev Axis Calibration
le contrôle, et c'est théoriquement spécifique au fournisseur , mais il est possible de le résoudre avec un peu d'inspiration (littéralement). Voici ce que vous devez faire: Evdev Axis Calibration
a été réinitialisé (cela m'est arrivé après l'exécution de ptxconf). Si tel est le cas, exécutez xinput --set-prop <DEVICE_ID> "Evdev Axis Calibration" <DEFAULT_VALUES_FROM_POINT_1>
(notez que, bien que les valeurs soient séparées par des virgules dans la sortie, elles doivent être séparées de l’espace dans l’entrée).<FAR_RIGHT_OFFSET> <FAR_LEFT_OFFSET> <VERY_TOP_OFFSET> <VERY_BOTTOM_OFFSET>
.xinput --list-props <DEVICE_ID>
et notez vos valeurs finales. C'est ça!Comme le note la sortie xinput_calibration
, vous devez ajouter un fichier de configuration dans le répertoire de votre configuration xorg (il s'agit de /usr/share/X11/xorg.conf.d/
sur Ubuntu, nommé avec une priorité suffisamment basse, comme 99-calibration.conf
dans l'exemple fourni).
Préparez les valeurs de la propriété xinput et vérifiez le nom du périphérique dans xinput --list
. Maintenant, tout ce que vous avez à faire est de créer le fichier de la manière suivante:
Section "InputClass"
Identifier "calibration"
MatchProduct "<DEVICE_NAME_FROM_XINPUT_LIST>"
Option "TransformationMatrix" "<VALUES_FROM(Coordinate Transformation Matrix)>"
Option "Calibration" "<VALUES_FROM(Evdev Axis Calibration)>"
Option "SwapAxes" "<VALUE_FROM(Evdev Axes Swap)>"
Option "InvertX" "<X_VALUE_FROM(Evdev Axis Inversion)>"
Option "InvertY" "<Y_VALUE_FROM(Evdev Axis Inversion)>"
EndSection
Par exemple:
Section "InputClass"
Identifier "calibration"
MatchProduct "ACME USB Touch"
Option "TransformationMatrix" "0.5656 0.000000 0.676576 0.000000 0.765756 0.756233 0.000000 0.000000 1.000000"
Option "Calibration" "50 1366 25 2876"
Option "SwapAxes" "1"
Option "InvertY" "1"
EndSection
Vérifiez si tout fonctionne après un redémarrage. Et maintenant tout est prêt!
Si vous voulez un outil graphique qui se trouve dans votre barre d'état système, alors nous en avons simplement créé un et nous aimerions voir s'il peut être utile à quelqu'un d'autre: il suffit de sélectionner votre stylet de saisie et à quel écran vous souhaitez le mapper:
http://wenhsinjen.github.io/ptxconf/
Nous venons juste de commencer, il est donc possible que vous rencontriez des problèmes pour identifier votre tablette ou vos écrans. Veuillez nous en informer. Nous allons le réparer tout de suite. Nous prévoyons également qu’il conserve sa configuration précédente après le démarrage - peut-être même souvenez-vous de la configuration utilisée pour quelle configuration d’écran si certaines personnes continuent d’ajouter et de supprimer des moniteurs.
Je ne parvenais pas à faire fonctionner correctement mon écran tactile USB générique/eGalax sur mon système Mint 18.2, quelle que soit la réponse trouvée, mais je pensais que je devais partager ce qui fonctionnait pour moi.
J'ai d'abord désactivé mon moniteur non tactile (comme suggéré par Beni Cherniavsky-Paskin) et calibré mon écran tactile à l'aide de xinput_calibrator
.
Rallumez mon autre moniteur (via la section affichage du panneau Paramètres système). À ce stade, l’écran tactile est bien calibré, mais l’entrée correspond toujours aux deux moniteurs.
Pour le décaler complètement vers le moniteur/la zone souhaitée, j'ai ensuite remappé la "matrice de transformation de coordonnées" du panneau, comme indiqué dans ce manuel en utilisant
$ xinput set-prop "Device Name" --type=float "Coordinate Transformation Matrix" c0 0 c1 0 c2 c3 0 0 1
Pour Device Name
, j'ai utilisé xinput --list
pour obtenir l'identifiant de l'écran tactile. De la sortie suivante, j'ai obtenu l'id 13 :
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SIGMACH1P USB Keyboard id=10 [slave pointer (2)]
⎜ ↳ SOAI Gaming Mouse id=12 [slave pointer (2)]
⎜ ↳ eGalax Inc. USB TouchController id=13 [slave pointer (2)]
J'ai calculé les paramètres comme expliqué dans le manuel mentionné. par exemple. Pour moi, une zone tactile large de 768px décalée par mon moniteur de 1900px m'a permis d'obtenir une c0 = 768/(1900+768) = 0.287856
. Fini avec cette commande:
$ xinput set-prop 13 --type=float "Coordinate Transformation Matrix" 0.287856, 0.000000, 0.712114, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Cela a tout bien fonctionné. btw, j'ai eu quelques problèmes, qui semblent disparaître lorsque j'ai utilisé une précision de 6 décimales seulement pour les paramètres idk si cela est réellement nécessaire ou, plus probablement, je venais de me gâcher.