Wie kalibriere ich einen Touchscreen auf einem Dual-Monitor-System?

18

Ich habe ein Dual-Monitor-Setup in zwei verschiedenen Größen. Mein primärer Monitor ist ein 23-Zoll-Breitbild-Acer T230H-Touchscreen, der zweite ist ein regulärer 20-Zoll-Touchscreen. Wenn ich den Touchscreen verwende, wird der Cursor auf dem sekundären Display angezeigt, je nachdem, wo ich das Display berühre. Wie kalibriere ich es, um nur meinen primären Monitor zu steuern?

TheCodeGeek
quelle
Jemand? Es sind drei Monate vergangen. Jeder, der mir beim Kalibrieren meines Touchscreens helfen kann, wäre eine große Hilfe.
TheCodeGeek

Antworten:

1

Haben Sie versucht, den xinput-calibrator zu verwenden ?

int_ua
quelle
4
xinput-calibratorhat mir nicht geholfen. Es erstreckte sich über den gesamten Anzeigebereich, auf den in meinem Setup nicht alle zugegriffen werden kann. Ich habe versucht, die Kalibrierungswerte manuell auf die Größe und Position des Touchscreens einzustellen, aber dies hatte keine Auswirkungen. Die Antworten mit xinput map-to-outputwaren einfacher und hilfreicher.
Stephen Angelico
37

Wie Beni Cherniavsky-Paskin in einem Kommentar vorgeschlagen hat, habe ich den folgenden Befehl verwendet, um ein Eingabegerät einem Ausgabebildschirm zuzuordnen:

xinput map-to-output <device> <output>

Um herauszufinden, welches welches ist, habe ich zuerst xinputdie Eingabegeräte aufgelistet. Aus dieser Auflistung ging hervor, dass mein Touchscreen "QUANTA Optical Touch Screen" war und als Geräte-ID 12 aufgeführt war. Anschließend lief ich xrandr, um den Touchscreen zu bestimmen, bei dem es sich in meinem Fall um VGA1 handelte.

Einfach den folgenden Befehl eingeben und fertig:

xinput map-to-output 12 VGA1
Paul Lammertsma
quelle
1
Ist es möglich, dies dauerhaft zu machen?
Wes
xinput (mindestens ab Version 1.6.2 können Sie anstelle der ID (die sich ändern kann) den Gerätenamen verwenden. Der obige Befehl xinput lautet daher:
JJones
xEingabe des Map-to-Output-Bildschirms 'QUANTA Optical Touch Screen' VGA1
JJones
und Sie können diesen Befehl verwenden, um es dauerhaft zu machen. Für KDE können Sie das Autostart-Programm verwenden und diesen Befehl mit seinen Optionen unter "Programm hinzufügen" eingeben oder in eine Datei einfügen, ausführbar machen und aus Autostart auswählen. Für andere suchen Sie nach: xinput Startup und einer von Gnome, LWM oder Cinnimon etc.
JJones
17

Wie Beni Cherniavsky-Paskin und Paul Lammertsma in den obigen Kommentaren angedeutet haben, xinput map-to-output <device> <output>hat das den Trick für mich getan!

Sie müssen zuerst ausgeführt werden xinput, um die ID des inupt-Geräts zu ermitteln.

Der obige Befehl gibt so etwas für mich zurück.

user@user-hpEnvy:~$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:401b   id=10   [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:4016   id=11   [slave  pointer  (2)]
⎜   ↳ ELAN20E7:00 04F3:20E7                     id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [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)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ HP Truevision HD                          id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ HP Wireless hotkeys                       id=16   [slave  keyboard (3)]
    ↳ HP WMI hotkeys    

Als nächstes lief ich xrandr, um die Liste der Bildschirme zu erhalten und die Ausgabe des Befehls ist wie folgt

user@user-hpEnvy:~$ xrandr
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
eDP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
   1920x1080      60.0*+   59.9     40.0  
   1680x1050      60.0     59.9  
   1600x1024      60.2  
   1400x1050      60.0  
   1280x1024      60.0  
   1440x900       59.9  
   1280x960       60.0  
   1360x768       59.8     60.0  
   1152x864       60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
HDMI1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 600mm x 340mm
   1920x1080      60.0*+   50.0     59.9  
   1680x1050      59.9  
   1600x900       60.0  
   1280x1024      60.0  
   1440x900       59.9  
   1280x720       60.0     50.0     59.9  
   1024x768       60.0  
   800x600        60.3  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        60.0     59.9  
   720x400        70.1  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

In meinem Fall ist das Touch-Gerät ELAN20E7:00 04F3:20E7 id=13und der Touchscreen aktiviert eDP1, um das Problem zu beheben. Ich muss das Gerät nur dem Monitor zuordnen, für den ich diesen Befehl ausgeführt habexinput map-to-output 13 eDP1

Problem gelöst und es funktioniert wieder :)

Ich benutze das Betriebssystem freya, es sollte also für alle Distributionen funktionieren, die auf Ubuntu 14.04 LTS basieren

Ajith R Nair
quelle
Genau der gleiche Befehl funktionierte für mich auf meinem HP Envy 15-k016nr-Laptop mit externem Monitor.
user207863
Dies funktionierte perfekt auf meinem Dell Inspiron 5547. Interessanterweise habe ich das verwendet id=13, was meinem entspricht ELAN Touchscreen, obwohl SynPS/2 Synaptics TouchPades das ist, was xinput-calibratorstandardmäßig verwendet wurde.
SimonT
3

Sehr schwer zu findende Lösung, aber eigentlich ziemlich einfach. Folgen Sie einfach der Antwort von "phnomic" hier: Touchscreen und zusätzlicher externer Monitor . Funktioniert einwandfrei mit meinem Fujitsu T730 mit allen Arten von externen Monitoren!

Konsumologie
quelle
Personen, die mit diesem Problem konfrontiert sind, kann ich diese Lösung nur empfehlen. Ich denke, es ist sauberer und schneller als die akzeptierte Antwort.
Tomas
1
Dies nutzt xsetwacom, was ich nur für Wacom-Geräte vermute? Es gibt jedoch ein Generikum, xinput map-to-output <device> <output> das im Geist ähnlich ist.
Beni Cherniavsky-Paskin