← Back to team overview

ubuntu-multiseat team mailing list archive

Re: Lightdm and Xephyr multiseat fun

 

One tweak was needed was to specify the library after the compilation
unit, to avoid an undefined reference to sd_get_seats:

$ gcc -Wall -std=gnu99 -DHOST_X_SERVER=\"/usr/bin/X\"
-DNESTED_X_SERVER=\"/usr/bin/Xephyr\" -DDEFAULT_DISPLAY=\":90\"
-DDEFAULT_XKBLAYOUT=\"br\" multi-seat-xephyr.c -lsystemd-login -o
multi-seat-xephyr

It looks like the example given makes more sense starting from 'seat0'
rather than 'seat-1'. Anyway, I realised the wrapper script passes
keyboard and mouse options to Xephyr. As Xephyr doesn't support udev
tags, would it make sense to specify the touchscreen via a custom
xorg.conf?

Thanks,
  Daniel

On 3 March 2014 23:54, Daniel J Blueman <daniel@xxxxxxxxx> wrote:
> On 3 March 2014 23:26, Laércio de Sousa <lbsousajr@xxxxxxxxx> wrote:
>> Em 03/03/2014 12:19, "Daniel J Blueman" <daniel@xxxxxxxxx> escreveu:
>>> On 3 March 2014 22:52, Laércio de Sousa <lbsousajr@xxxxxxxxx> wrote:
>>> > Em 02/03/2014 17:38, "Laércio de Sousa" <lbsousajr@xxxxxxxxx> escreveu:
>>> >> Em 02/03/2014 16:22, "Daniel J Blueman" <daniel@xxxxxxxxx> escreveu:
>>> >> > Using Ubuntu 13.10 i686 and the superb work in the ubuntu-multiseat
>>> >> > PPA, I run a configured X server on a dual-output Intel GPU (started
>>> >> > from a modified lightdm upstart script [1]):
>>> >> > # /usr/bin/Xorg :0 -nolisten tcp vt7
>>> >> >
>>> >> > then start configured [2] lightdm, which in turn runs the Xephyr
>>> >> > wrapper [3]. Both user sessions start; so far so good.
>>> >> >
>>> >> > Since I need to also attach touchscreen and sound to the screens, I
>>> >> > have to use udev tags, so I assign a mouse the 'seat1' tag [4,5] and
>>> >> > it isn't listed in 'loginctl seat-status seat0' as expected, but it
>>> >> > doesn't move the cursor on the second head (or first).
>>> >> >
>>> >> > loginctl shows only a single seat, despite both Xephyr servers being
>>> >> > passed '-seat seat0' and '-seat1' (which isn't listed in 'Xephyr
>>> >> > -help):
>>> >> > $ loginctl list-seats
>>> >> > SEAT
>>> >> > seat0
>>> >> >
>>> >> > 1 seats listed.
>>> >> >
>>> >> > Any idea what I'm missing?
>>> []
>>> >> In order to create a new seat in logind, you need to have at least one
>>> >> device udev-tagged as master-of-seat attached to it. Try to write a
>>> >> udev
>>> >> rule that tags one of your seat1 devices as master-of-seat.
>>> >
>>> > Moreover, you also need a Xephyr built with configure option
>>> > --enable-kdrive-evdev (like the one available in Multiseat PPA). Then
>>> > you
>>> > need to pass explictly the devpaths of your input devices to Xephyr with
>>> > options -keybd and -mouse. Xephyr doesn't recognize option -seat
>>> > directly.
>>>
>>> Yes, that seems to be what I'm finding. The updated udev rules [1]
>>> work nice [2], but the mouse from the Xephyr seat0 can move onto the
>>> seat1 screen, despite:
> []
>>> For the system I'll be setting up, there will be three touchscreen
>>> monitors with sound via HDMI on a triple-output Intel GPU, so I'm out
>>> of luck with the -mouse and -keybd options.
>>>
>>> Maybe you or Richard know if anyone has had any luck with eg MDM or
>>> other solutions (Wayland?), rather than Xephyr?
>>
>> Well... I'm working on a binary wrapper for Xephyr (see
>> http://launchpad.net/multi-seat-xephyr) that does almost everything you
>> want. I've used it quite well in openSUSE, but I didn't package it for
>> Ubuntu yet. Maybe I can build the Ubuntu package this week.
>
> Wow, that's a good plan. I'll take a look into this, and as a backup,
> see if I can get Weston (Wayland) running nicely, as it'll have much
> less overhead.
>
> Thanks again,
>   Daniel
> --
> Daniel J Blueman



-- 
Daniel J Blueman


Follow ups

References