[Question] ZaphodHeads, ServerLayout without position information, and touchscreens
Hugh Chang
perceiv2 at gmail.com
Sun Jul 26 12:28:39 UTC 2020
Dear Böszörményi Zoltán and Adam Nielsen,
Thanks for your valuable comments. I deeply appreciate them and am
writing my reply below.
> we use this kind of ServerLayout: Screen 1 "SCREEN1" RightOf "SCREEN0"
> This way, their canvases look like they are put side by side.
> I am not sure how Xorg sets up screens related to each other in the
> video RAM when the positional coordinates are used the way you quoted.
It is good to know that you usually position the screens not to overlap.
I also don't know about the video RAM when the origins are all (0,0).
> Are you sure you want a multi-seat setup ...
> This creates a single seat with two independent displays, attached to
> the same X session. This is not multi-seat, this is just multi-monitor
> on a single seat.
Thanks for teaching me. I did not know the exact meaning of the terminology.
> If you want multi-seat, you generally have to launch a separate Xorg
> session for each seat, with effectively a different ServerLayout for
> each one. I am not sure that this is what your requirement actually is.
Okay, I got it. Then I think that my customer does not want multi-seat.
> The display origins are all at (0,0) as they behave a bit like two
> independent computers (perhaps this is where the multi-seat confusion
> is coming from). However if you plug a mouse into the computer, you
> will be able to move the cursor between both monitors which means it's
> a single seat.
Yes, you are right.
> In a true multi-seat set up, you would have to
> configure the system to assign the mouse you plugged in to one
> seat/monitor or the other, and you could not move it between both
> screens.
Now, I can understand the exact meaning of the terminology.
> So one solution to your problem is to configure the system as a true
> multi-seat system, with each monitor assigned to a different seat. You
> may however need to add a second video card to the system to do this, as
> I cannot recall whether you can share a single video card between seats.
> Certainly it was not the case in the past, and I am unsure whether this
> is now supported or not.
That's right. We need multiple video cards for a true multi-seat system.
> Alternatively, in this single-seat Zaphod mode, the screens are still
> aligned so that the mouse cursor can glide from one monitor to the next,
> so the second monitor will have an origin that is not (0,0) as far as
> the mouse/touchscreen is concerned.
Yes, I think from the mouse movement that the input device coordinates
do not overlap while the output device coordinates DO overlap.
How can I know the input device layout to calculate the transformation
matrix values when the output device origins are all (0,0)?
> Have you tried assuming the monitors are set up as a single Xorg
> display (":0" only) and setting the transformation matrix accordingly?
Yes, as I described in "4.2.1. ServerLayout with position information" of
"https://lists.x.org/archives/xorg/attachments/20200717/37b0cae6/attachment-0001.pdf",
Section "ServerLayout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 1920 360
EndSection
+---------------------+
| | +----------------------+
| Left Monitor (:0.0) | | Right Monitor (:0.1) |
| 1920x1080 @ 0,0 | | 1280x720 @ 1920,360 |
+---------------------+ +----------------------+
Section "InputClass"
Identifier "Touch for screen0"
MatchUSBID "2965:5024"
Option "TransformationMatrix" "0.6 0 0 0 1 0 0 0 1"
EndSection
Section "InputClass"
Identifier "Touch for screen1"
MatchUSBID "2965:5023"
Option "TransformationMatrix" "0.4 0 0.6 0 0.666667 0.333333 0 0 1"
EndSection
> If you left the transformation matrix alone for the left monitor, but
> set the one on the right so that it was offset by 1920 pixels
> horizontally, would that work?
Yes, the above configuration worked well.
> I haven't actually tried this so I am only guessing, and of course the
> exact transformation values would depend on the screen sizes and how
> they are positioned relative to each other in xorg.conf, but it could
> be worth experimenting with.
Section "ServerLayout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 0 0
EndSection
When all the origins are (0,0), however, I don't know what to do
as I described in "4.2.2. ServerLayout without position information" of
"https://lists.x.org/archives/xorg/attachments/20200717/37b0cae6/attachment-0001.pdf",
Best regards,
Hugh Chang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg/attachments/20200726/d89c785f/attachment.htm>
More information about the xorg
mailing list