0

I am trying to make two touch displays work as a separate displays (but touch working on both respectively). I managed first to setup two screen working with one ServerLayout (but the touch worked only on one screen in that). I read that you need to bind input devices to the ServerLayout, and in my case that would mean I need to have two ServerLayouts setup like here: How to lock one mouse/keyboard pair to each screen?

For some reason when I do so my other screen goes black and does not seem to work. Only Screen0 is working which is attached to ServerLayout0. I myself already blind and do not see any errors in my xorg.conf:

Section "ServerLayout"
        Identifier     "ServerLayout0"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "touchscreen0" "CorePointer"
        Option "BlankTime" "0"
        Option "StandbyTime" "0"
        Option "SuspendTime" "0"
        Option "OffTime" "0
EndSection

Section "ServerLayout"
        Identifier     "ServerLayout1"
        Screen      1  "Screen1" 0 0
        InputDevice    "touchscreen1" "CorePointer"
        Option "BlankTime" "0"
        Option "StandbyTime" "0"
        Option "SuspendTime" "0"
        Option "OffTime" "0
EndSection

Section "Files"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/X11/misc"
        FontPath     "/usr/share/fonts/X11/cyrillic"
        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/Type1"
        FontPath     "/usr/share/fonts/X11/100dpi"
        FontPath     "/usr/share/fonts/X11/75dpi"
        FontPath     "built-ins"
EndSection

Section "Module"
        Load  "glx"
EndSection

Section "InputDevice"
  Driver       "evdev"
  Identifier   "touchscreen0"
  Option       "Name" "Elo touch screen0"
  Option       "InvertY" "true"
  Option       "Calibration 0 1280 0 1024"
  Option       "Emulate3Buttons" "true"
  Option       "Emulate3Timeout"     "50"
  Option       "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
EndSection

Section "InputDevice"
  Driver       "evdev"
  Identifier   "touchscreen1"
  Option       "Name" "Elo touch screen1"
  Option       "InvertY" "true"
  Option       "Calibration 0 1280 0 1024"
  Option       "Emulate3Buttons" "true"
  Option       "Emulate3Timeout"     "50"
  Option       "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier   "Monitor1"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
    Option "RightOf" "Monitor0"
EndSection

Section "Device"
        Option      "AccellMethod" "SNA"
        Option      "ZaphodHeads" "HDMI1"
        Option      "TearFree" "true"
        Identifier  "Device0"
        Driver      "intel"
        BusID       "PCI:0:2:0"
        Screen      0
EndSection

Section "Device"
        Option      "AccellMethod" "SNA"
        Option      "ZaphodHeads" "HDMI2"
        Option      "TearFree" "true"
        Identifier  "Device1"
        Driver      "intel"
        BusID       "PCI:0:2:0"
        Screen      1
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Device0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "Screen"
        Identifier  "Screen1"
        Device      "Device1"
        Monitor     "Monitor1"
        SubSection     "Display"
             Depth       24
        EndSubSection
EndSection

Edit:

To clarify my question better: my use case is that there will be two separate users using the device at the same time. They should have their own sessions. In both monitors same software is run, but separate instances of it. I want touch input to register input in their respective screen areas. As if they are run in same ServerLayer the touch from Screen1 is forwarded to the Screen0. Which is something I do not want.

  • You want these as separate sessions (different users on each screen), or somehow in a single session? If you want a single session, how it is supposed to work (there's only a single mouse cursor)? Have the mouse cursor jump to the screen you touch? – dirkt Nov 2 '17 at 9:18
  • The mouse and keyboard are not used, only touch screen. I can remove mouse and keyboard from the config not to confuse. – Maksim Luzik Nov 2 '17 at 9:47
  • I am talking about the mouse cursor ("Virtual core pointer", if you want), not the mouse device. A single X server only has one virtual core pointer, even if it has multiple screens. The touch screen sets the position of the virtual core pointer. Again: Do you want the separate displays to be used from different sessions? (You understand the term "session"?) Or do you want a single session, with two screens? – dirkt Nov 2 '17 at 9:59
  • @dirkt, meet multi-pointer X ;-). (See also the X.org wiki page on the topic.) – Stephen Kitt Nov 2 '17 at 10:40
  • @StephenKitt: I know about multi-pointer X, but I'm not sure if that is what he wants, as he wants to restrict the touch pointer position to a single screen. And now we have a third alternative besides "single session with single pointer" and "real multisession". As long as he can't communicate his intentions, it's difficult to tell him what to do. – dirkt Nov 2 '17 at 10:46

Your Answer

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

Browse other questions tagged or ask your own question.