evdev input module and multiple X screen support
Peter Hutterer
peter.hutterer at who-t.net
Tue Dec 13 13:44:47 PST 2011
On Mon, Dec 12, 2011 at 04:40:23PM -0500, Curtis Rubel wrote:
> Peter,
>
> What I am seeing when I run with the settings I sent you
> below, is that the cursor actually stays in the first monitor.
> However it appear to be scaled so that as I touch the other
> 3 touch screens the cursor will move further and further
> right until I am finally on my last touch screen and the
> cursor arrow finally can reach the rightmost side of the
> first monitor.
>
> My release of Xorg shows as:
>
> X.Org X Server 1.10.4
> Release Date: 2011-08-19
>
> from the Xorg.0.log file...
>
> So I guess from that information can you determine if I can
> actually do what I need to do with the version I have installed
> from the OpenSuSE 12.1 release?
>
> Will I need to download from git, build and install that version?
1.10.x does not support the matrix for multiple ScreenRecs, and the current
1.11 release doesn't either. so you either need to go back to whichever
version was the last one to support it (I really don't know) or use the git
version. sorry.
> Or will it even support separate X screens at all and will I need
> to switch into a Xinerama type setup?
Xinerama on/off shouldn't matter, should work identical either way.
> I really appreciate all your help and insight into this.....having
> to switch from an easy method where the input driver would do this
> for us to this new way is a little bit confusing for me.
understandable. the problem with the "easy" method was that it was
essentially unmaintainable (and a lot less flexible).
Cheers,
Peter
> On 12.12.2011 16:23, Peter Hutterer wrote:
> >On Mon, Dec 12, 2011 at 09:02:29AM -0500, Curtis Rubel wrote:
> >>Peter,
> >>
> >> I have been looking at this for a while and have not been able
> >>to get my system setup correctly as it is a rather complex setup.
> >>
> >>I have 4 monitors on this system. The first one is NOT a touch
> >>screen and is at 800X600, the other 3 are touch screens at
> >>1280X1024,
> >>with the center of those 3 rotated to portrait mode. I am not quite
> >>sure
> >>how to proceed looking at the examples provided since none of
> >>them really give me any idea of what to do about my first monitor
> >>which is not a touch device.
> >
> >you only set the matrix if you want a input device bound to an
> >_area_ on the
> >screen. so don't think of it in terms of monitors, think of it in
> >terms of
> >touchscreens - the first touchscreen should be mapped to area of
> >the the
> >second monitor from the left, etc.
> >
> >>I am assuming that I still need to account for it in the equations,
> >>is that a valid assumption?
> >>
> >>#xinput list
> >>â¡ Virtual core pointer id=2 [master
> >>pointer (3)]
> >>â â³ Virtual core XTEST pointer id=4 [slave
> >>pointer (2)]
> >>â â³ TouchScreenLeft id=6 [slave
> >>pointer (2)]
> >>â â³ TouchScreenCenter id=7 [slave
> >>pointer (2)]
> >>â â³ TouchScreenRight id=8 [slave
> >>pointer (2)]
> >>⣠Virtual core keyboard id=3 [master
> >>keyboard (2)]
> >> â³ Virtual core XTEST keyboard id=5 [slave
> >>keyboard (3)]
> >> â³ Power Button id=9 [slave
> >>keyboard (3)]
> >> â³ Power Button id=10 [slave
> >>keyboard (3)]
> >> â³ Logitech USB Keyboard id=11 [slave
> >>keyboard (3)]
> >> â³ Logitech USB Keyboard id=12 [slave
> >>keyboard (3)]
> >>
> >>#xinput list-props "TouchScreenLeft"
> >>Device 'TouchScreenLeft':
> >> Device Enabled (117): 1
> >> Coordinate Transformation Matrix (119): 1.000000, 0.000000,
> >>0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
> >>
> >>#xinput list-props "TouchScreenCenter"
> >>Device 'TouchScreenCenter':
> >> Device Enabled (117): 1
> >> Coordinate Transformation Matrix (119): 1.000000, 0.000000,
> >>0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
> >>
> >>#xinput list-props "TouchScreenRight"
> >>Device 'TouchScreenRight':
> >> Device Enabled (117): 1
> >> Coordinate Transformation Matrix (119): 1.000000, 0.000000,
> >>0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
> >>
> >>So first to make it a little easier no rotation for now on #2:
> >>
> >>0:
> >>800/(800 + (3*1280) ) 0 0
> >>0 600/1024 0
> >>0 0 1
> >>
> >>1:
> >>1280/(800 + (3*1280) ) 0 800/(800 + (3*1280) )
> >>0 1024/1024 0
> >>0 0 1
> >>
> >>2:
> >>1280/(800 + (3*1280) ) 0 800+1280/(800 + (3*1280) )
> >>0 1024/1024 0
> >>0 0 1
> >>
> >>3:
> >>1280/(800 + (3*1280) ) 0 800 + (2*1280)/(800 + (3*1280) )
> >>0 1024/1024 0
> >>0 0 1
> >>
> >>Does that look about correct, because the math on
> >>the 3rd number or c2 from the equation examples does
> >>not seem to add up properly to equal a total of 1.
> >
> >I can't see anything wrong at a quick glance, though I suggest
> >just trying
> >with simple values (e.g. 0.5) first to make sure the mapping works
> >at all
> >(see below).
> >
> >c2 shouldn't usually add up to 1 since that'd be an offset of the
> >display
> >width - i don't think there's a use-case for that :)
> >for the right-most screen, usually you'd want c0 + c2 to add up to 1.
> >
> >also, something I forgot in the first email: the matrix only works
> >properly
> >for RandR displays if you're using a released server version, only
> >the git
> >version supports this for traditional multihead.
> >
> >Cheers,
> > Peter
> >
> >>On 09.12.2011 23:37, Peter Hutterer wrote:
> >>>On Fri, Dec 09, 2011 at 12:47:10PM -0500, Curtis Rubel wrote:
> >>>>Hello xorg...
> >>>>
> >>>>Can someone tell me if multiple X screen support is planned for
> >>>>the evdev input module?
> >>>>
> >>>>We have a number of multiple X screen systems here running Xorg
> >>>>using
> >>>>the older evtouch input library and from what I can see it
> >>>>appears this
> >>>>module is no longer supported and being replaced by the evdev
> >>>>module.
> >>>>Is this the case or has the evtouch input library just not been
> >>>>updated yet??
> >>>>
> >>>>Any help in this matter would be greatly appreciated...as the
> >>touch
> >>>>screen vendor
> >>>>ELO does not support multiple USB touchscreens on a single
> >>system...
> >>>
> >>>input drivers don't do multi-screen handling (anymore), it's all
> >>>handled by
> >>>the server now. See the documentation here:
> >>>http://wiki.x.org/wiki/XInputCoordinateTransformationMatrixUsage
> >>>
> >>>Cheers,
> >>> Peter
> >>
> >>--
> >>Curtis Rubel
> >>Senior Development Engineer
> >>Compro Computer Services, Inc.
> >>105 East Drive - Melbourne, Florida, 32904
> >>Phone: 321-727-2211
> >>email: crubel at compro.net
> >>Web: http://www.compro.net
> >>
> >>"An ISO 9001:2008 Registered Company"
> >>
> >>
> >>---------------------------------------------------------------------------
> >>CONFIDENTIALITY NOTICE: This email transmission, and any documents,
> >>files or previous email messages attached to it may contain
> >>confidential information that is legally privileged. If you are not
> >>the intended recipient or a person responsible for delivering it to
> >>the intended recipient, you are hereby notified that any disclosure,
> >>copying, distribution, or use of any of the information contained in
> >>or attached to this transmission is STRICTLY PROHIBITED. If you have
> >>received this transmission in error, please immediately notify the
> >>sender by email or call 321-727-2211. Please destroy the original
> >>transmission and its attachments without reading or saving it in any
> >>manner.
> >>
>
> --
> Curtis Rubel
> Senior Development Engineer
> Compro Computer Services, Inc.
> 105 East Drive - Melbourne, Florida, 32904
> Phone: 321-727-2211
> email: crubel at compro.net
> Web: http://www.compro.net
>
> "An ISO 9001:2008 Registered Company"
>
> ---------------------------------------------------------------------------
> CONFIDENTIALITY NOTICE: This email transmission, and any documents,
> files or previous email messages attached to it may contain
> confidential information that is legally privileged. If you are not
> the intended recipient or a person responsible for delivering it to
> the intended recipient, you are hereby notified that any disclosure,
> copying, distribution, or use of any of the information contained in
> or attached to this transmission is STRICTLY PROHIBITED. If you have
> received this transmission in error, please immediately notify the
> sender by email or call 321-727-2211. Please destroy the original
> transmission and its attachments without reading or saving it in any
> manner.
More information about the xorg
mailing list