web-dev-qa-db-fra.com

Écran tactile avec deux moniteurs

j'ai Ubuntu 12.04 et deux moniteurs, dont le premier est l'écran tactile.

Le système reconnaît la résolution sur un grand écran avec une résolution de 3840 * 1080.

Le problème est que lorsque vous utilisez le calibrage tactile, l'écran du calibrateur est dimensionné sur les deux écrans. Ainsi, lorsque vous touchez l'écran, le pointeur obtient un double mouvement sur l'axe X.

Y-a-t'il une solution?

Graphique: NVIDIA avec affichage double

5
venz

Commencez par lister toutes les sources d’entrée avec xinput --list:

⎡ Virtual core pointer                       id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Sony Vaio Jogdial                         id=8    [slave  pointer  (2)]
⎜   ↳ Advanced Silicon S.A CoolTouch(TM) System id=11   [slave  pointer  (2)]
⎜   ↳ HID-compliant Mouse HID-compliant Mouse   id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=9    [slave  keyboard (3)]
    ↳ Power Button                              id=10   [slave  keyboard (3)]
    ↳ IR camera                                 id=12   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=14   [slave  keyboard (3)]
    ↳ Cherry USB keyboard                       id=15   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=16   [slave  keyboard (3)]

Prenez l'appareil qui vous intéresse (dans ce cas, j'utilise le "Système Advanced Silicon S.A CoolTouch (TM)") et notez son ID.

Maintenant, vous devez trouver l’affichage sur lequel vous voulez mapper le périphérique d’entrée. La méthode la plus simple consiste à utiliser xrandr:

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 16384 x 16384
HDMI-0 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024     60.02*+
   1280x960      60.00  
   1280x720      60.00    59.94  
   1152x864      75.00    70.00  
   1024x768      60.00  
   800x600       60.32  
   720x480       59.94  
   640x480       59.94    59.93  
LVDS-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080     60.00*+  59.94  

Dans ce cas, je souhaite mapper mon périphérique tactile sur la sortie LVDS-0.

Combinez l'ID de la première étape (11 ici) avec le nom d'écran de la deuxième étape (LVDS-0 ici) et exécutez la commande suivante:

xinput --map-to-output INPUT-IDSCREEN

Dans mon exemple, cette commande serait:

xinput --map-to-output 11 LVDS-0

Votre périphérique tactile ne doit pas être correctement mappé sur le périphérique d'entrée et ne nécessite aucune configuration supplémentaire.

Ces paramètres ne persisteront pas entre les redémarrages . Veuillez consulter cette question sur comment rendre persistantes les commandes xinput .

9
RAnders00

Le wiki archlinux est la meilleure description de la façon de résoudre ce problème, mais voici quelque chose d'un peu plus spécifique.

Vous devez exécuter xinput --list pour identifier le nom de votre périphérique d’entrée. J'ai créé une feuille de calcul pour calculer les valeurs de transformation.

Feuille de calcul ici: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing

J'ai couru vos numéros (double affichage 1920x1080).

Si votre écran tactile est à gauche, la commande serait ("Système avancé Silicon S.A CoolTouch (TM)" est le nom de mon périphérique d'entrée, remplacez-le par le vôtre):

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1

Pour le droit, cela devrait être:

xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
2
user272160

Comme il s’agit d’un résultat de recherche google pour ce problème, j’ai décidé de publier ma solution qui, pour moi, est simple.

J'ai trouvé ceci lien sur archlinux , et vous pouvez utiliser

xinput --map-to-output <stylus device ID> <screen ID>

donc je n'ai pas besoin de jouer avec "matrice de transformation de coordonnées" ...

1
Yura

Voir: https://wiki.archlinux.org/index.php/Calibrating_Touchscreen

Votre matrice est l'une des suivantes:

 Touch screen on the left: 0. 5 0 0 0 1 0 0 0 1
 Touch screen on the right: 0. 5 0 0. 5 0 1 0 0 0 1

J'ai presque la même configuration (mais les écrans se superposent) et je rencontre plusieurs clics après avoir défini la matrice correcte, comme décrit à la dernière ligne du lien. Je n'ai pas trouvé de moyen de reconstruire xorg-server sous Ubuntu; pour sûr la procédure décrite ne fonctionne pas.

1
gani