evdev input module and multiple X screen support

Curtis Rubel crubel at compro.net
Mon Dec 12 13:40:23 PST 2011


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?

Or will it even support separate X screens at all and will I need
to switch into a Xinerama type setup?

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.

Best Regards,

Curtis


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