Comment 4 for bug 1190581

Revision history for this message
LaƩrcio de Sousa (lbssousa) wrote :

> I didn't see any documentation guaranteeing that seat0 is reported
> first. I suspect that logind creates seat0 before any other seat, so
> if the signals are connected before any seats are created, LightDM
> should hear about seat0 first. If LightDM starts up after seats have
> been created, I would expect seat0 to be the first seat returned by
> ListSeats(). Thus, I believe that LightDM can easily do the seat0 VT
> switching before starting any other seat.
> However, I don't see why seat0 must be a CanGraphical seat. If seat0
> doesn't have to be a CanGraphical seat, then LightDM won't know
> whether a non-CanGraphical seat0 will eventually become a CanGraphical
> seat or will stay a non-CanGraphical seat. Waiting to start the other
> seats until after seat0 is started might mean that LightDM could wait
> forever.
>
> So unless seat0 is guaranteed to be a CanGraphical seat at some point
> during the boot process, LightDM can't afford to impose any
> requirements on seat0 startup order. It needs to be able to cope with
> seat1 starting before seat0 starts (if seat0 ever starts a greeter).

We should ask Lennart Poettering about this. It can be done via systemd-devel mailing list or via systemd Google+ community.

> I'm not sure if X supports more than one -config argument, but if not
> then users can't provide their own config file on non-seat0 seats
> using this wrapper. That could be a problem.

No. X.Org can handle only one -config argument. I wrote a patch for systemd-multi-seat-x sometime ago (it's available at https://bugzilla.redhat.com/show_bug.cgi?id=962907), that allows me to append my custom xorg.conf to /run/systemd/multi-session-x/<seatname>.

A workaround for this limitation with systemd-multi-seat-x is putting your custom config files in /etc/X11/xorg.conf.d folder, with an explicit "ServerLayout" section that should be passed to X via -layout option. In order to avoid conflicts with other graphics devices that requires no custom xorg.conf (e.g. Intel onboard chip), one needs also to provide a default config like this:

Section "Device"
    Identifier "Default Device"
EndSection

Section "Screen"
    Identifier "Default Screen"
    Device "Default Device"
EndSection

Section "ServerLayout"
    Identifier "Default Layout"
    Screen "Default Screen"
EndSection