[systemd-devel] [RFC] Multiseat X sessions and Xorg configs

Lennart Poettering lennart at poettering.net
Tue Jul 16 08:28:13 PDT 2013

On Tue, 16.07.13 16:09, Glen Gray (slaine at slaine.org) wrote:

> Hey guys,
> I'm currently working with a Plugable DisplayLink usb hub/adaptor for adding multi-seat support to an embedded PC formfactor.
> I've been running into difficulties with the changes to GDM and systemd with regards to multiseat support.
> For GDM, I've patched it to do the following...
> 1) In daemon/gdm-display.c where it currently checks if the seat != seat0. Rather than doing "goto out;" immediately, it queries the username. If the username is utilising the script method then let the automated login proceed. The script method will parse the login name as a script path if it ends with | character.
> 2) In daemon/gdm-simple-slave.c, rather than using a global level GDM_RAN_ONCE_FILE_MARKER, create one per seat. This allows the wants_autologin() to return True on a another seat rather than drop through to simply start_greeter().
> 3) In daemon/gdm-slave.c, Export the GDM_SEAT_ID for the initial gdm slave display. This allows you to check the current seat in the script for item 1) above.
> That solved my gdm automated login process on the different seats. I've emailed the patch to the gdm list.
> However, I also ran into a problem with Xorg configurations. 
> The host system runs on an embedded PC and has an xorg.conf.d Device entry for the Intel driver to enable certain options. However, this is global and caused problems with the displays on the other seats. e.g. with the second seat starting Xorg and looking for the Intel device as described in the xorg.conf.d file, rather than using the appropriate Frame-buffer device. I've patched the systemd/login/multi-seat-x.c to also pass over a -configdir parameter to the Xorg it launches. e.g '-configdir /etc/X11/xorg.conf.d/multi-session-x/seat-usb-pci-
> 0000_00_1d_7-usb-0_3_1_4'. I'm not entirely confident that's the correct path I should be using.

I figure both of these issues are better discussed in the gdm and X11
mailing lists rather than here.

Note that the "multi-seat-x" tool is on its way, see this thread:


In this same thread there are discussions about adding a MatchSeat
option to X. This really looks like what you are looking for? With that
in place you could have configuration fragments that only apply to
specific seats rather than all of them?


Lennart Poettering - Red Hat, Inc.

More information about the systemd-devel mailing list