I have a dual monitor setup of two different sizes. My primary monitor is a 23 in widescreen Acer T230H touchscreen, and the second is a regular 20 in. When I go to use the touchscreen, the cursor shows up on the secondary display depending on where I touch the display. How do I calibrate it to only control my primary monitor?

  • Anyone? It has been three months. Anyone that can help me calibrate my touchscreen would be of great help. – TheCodeGeek Oct 12 '11 at 19:20

Have you tried using xinput-calibrator?

| improve this answer | |
  • 6
    xinput-calibrator did not help me. It spanned across the entire display space, which is not all accessible on my setup. I tried manually setting calibration values to the size and position of the touchscreen but it had no effect. The answers using xinput map-to-output were easier and more helpful. – Stephen Angelico Dec 26 '17 at 3:38

As Beni Cherniavsky-Paskin suggested in a comment, I used the following command to map an input device to an output screen:

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

To figure out which is which, I first ran xinput to list the input devices. From that listing, I observed that my touchscreen was "QUANTA Optical Touch Screen" and listed as device id 12. I then ran xrandr to determine the touchscreen, which in my case was VGA1.

Simply entering the following command then did the trick:

xinput map-to-output 12 VGA1
| improve this answer | |
  • 2
    Is it possible to make this persistent? – Wes Mar 5 '18 at 9:56
  • xinput ( at least as of version 1.6.2 allows you to use the device name instead of the ID ( which can change) . so the above xinput command becomes: – JJones Jul 31 '18 at 20:51
  • 1
    xinput map-to-output 'QUANTA Optical Touch Screen' VGA1 – JJones Jul 31 '18 at 21:00
  • 1
    and you can use that command to make it persistent. For KDE you can use the Autostart program and enter that command with its options in "Add Program", or put it in a file, make it executable and select it from Autostart. For others try searching for: xinput startup and one of gnome, LWM or cinnimon etc. – JJones Jul 31 '18 at 21:09
  • Hey JJones, you should add the name version of that command to an actual answer rather than in the comments, it was really helpful! :) – Jordan Mackie Dec 26 '19 at 1:14

As Beni Cherniavsky-Paskin and Paul Lammertsma suggested in above comments xinput map-to-output <device> <output> did the trick for me!

you first need to run xinput to get the id of inupt device,

the above command return something like this for me.

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    

Next I ran xrandr to get the list of screens and the output of the command is like this

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 my case the touch device is ELAN20E7:00 04F3:20E7 id=13 and touch enabled screen is eDP1 to fix the issue i need to map the device the that monitor only for that i ran this command xinput map-to-output 13 eDP1

Problem solved and its working fine again :)

I am using elementary OS freya, so it should work for all distros based on Ubuntu 14.04 LTS

| improve this answer | |
  • Exact same command worked for me on my HP Envy 15-k016nr laptop with external monitor. – user207863 Mar 20 '17 at 22:13
  • 1
    This worked perfectly on my Dell Inspiron 5547. Interestingly I used id=13 which corresponds to my ELAN Touchscreen, even though SynPS/2 Synaptics TouchPad is what xinput-calibrator was using by default. – SimonT Jun 19 '17 at 1:52

Very hard to find solution but actually pretty straight forward, just follow the answer from 'phnomic' here: Touchscreen and additional external monitor. Works flawless with my Fujitsu T730 with all kinds of external monitors!

| improve this answer | |
  • To people facing this problem, I would highly recommend this solution. I think it is cleaner and quicker than the accepted answer. – Tomas Jan 21 '13 at 12:28
  • 1
    This uses xsetwacom, which I presume only works for Wacom devices? However there is a generic xinput map-to-output <device> <output> which is similar in spirit. – Beni Cherniavsky-Paskin May 10 '13 at 2:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.