Ask Your Question

How do I enabled my touchscreen in a multi-monitor setup?

asked 2012-08-22 22:53:35 -0500

kirkb gravatar image

updated 2014-09-30 06:57:01 -0500

mether gravatar image

If I plug in my Dell ST2220T into my F17 machine it is recognized as a touch device. However I have another non-touch monitor connected to the machine. The touch surface of the touchscreen is somehow mapped to the entire desktop's square footage. So if I touch the top left of my touchscreen it moves the mouse to the top left of my entire desktop, which means my other monitor since it is positioned on the left on the touch screen.

How can I run dual-head with a single touchscreen such that when I touch the touchscreen it ignores the other screen and works as expected, allowing touch to interact with just the touchscreen's display?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2013-09-30 12:27:26 -0500

kirkb gravatar image

updated 2013-10-09 00:49:58 -0500

After some research I have found the solution, and it involves matrices (remember those?)

Basically you have to provide the driver with an updated "touch area". It is not as simple as it sounds because many touchscreens are on tablets, and the software has to support rotating monitors etc.

This Ubuntu page does a good job of showing the general concepts behind using the matrix approach, but borders on incomprehensible if you don't remember your matrix math.

This ArchLinux wiki page does a nice job of showing you how to calculate the actual values you need to set for your specific monitor setup.

The values are

c0 = touch_area_width / total_width
c2 = touch_area_height / total_height
c1 = touch_area_x_offset / total_width
c3 = touch_area_y_offset / total_height 

So for my specific setup I:

xrandr - find my total area
xinput list - to find my device
xinput list-props deviceID - to confirm current matrix is the identity matrix

Then I used the ArchLinux formulae to calculate c0, c1, c2, and c3.

Finally I set the new matrix into place:

xinput set-prop deviceID 'Coordinate Transformation Matrix' c0 0 c1 0 c2 c3 0 0 1

Presto! The touch area is now working properly. This was for a dual monitor setup with one landscape monitor and one portrait. Just follow the formulae and you'll see success too.

Update: This change only lasts until you log out. To make it permanent create a file /etc/X11/xorg.conf.d/99-touchscreen-calibration.conf with the following contents:

Section "InputClass"
         Identifier "Touchscreen_Calibration"
         MatchProduct "LG Display LGD-MultiTouch"
         Option "TransformationMatrix" "0.646464646 0 0 0 0.642857 0.357142857 0 0 1"

Replace my numbers with your numbers. Now the touchscreen will be calibrated with each reboot automatically.

edit flag offensive delete link more

answered 2014-03-17 10:13:16 -0500

Regarding touchscreen support, such as on a Dell XPS 18 touchscreen computer, Ubuntu got their act together in their version 14.04 Trusty (which is due out in April '14) wherebye you install Ubuntu, and the touchscreen JUST WORKS out of the box, with no hassles, onscreen keyboard (OB), Firefox, and any application, menu and all works very nicely. See here:

I would love to see Fedora 20 do the same, but unfortunately it failed the test on the Dell XPS 18 touchscreen. No touchscreen support was present. Come on Fedora project, you can do it! Make it work out of the box. Check out the kernel code, etc. from Ubuntu 14.04 Trusty daily downloads.

This is posted in the hopes the Fedora community will take note.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2012-08-22 22:53:35 -0500

Seen: 3,322 times

Last updated: Mar 17 '14