[systemd-devel] Display manager and logind interaction

Robert Ancell robert.ancell at gmail.com
Sat Feb 11 03:14:41 PST 2012


Hi all,

I'm looking at the logind / display manager (DM) interaction and want
to check if I grok it.

As I read it:

- A logind aware DM should get the list of seats to run from logind
and watch for changes[1].
- When the DM starts a session it calls CreateSession on
org.freedesktop.login1.Manager?  (The equivalent of
OpenSessionWithParameters in CK?)
- Each seat should be configured (hardware wise) by what udev reports.
- Sessions can be locked by using the logind interface (which checks
permission to do this).  A lock aware session should listen to the
Lock/Unlock signals on org.freedesktop.login1.Session and perform the
required UI changes.  A lock aware DM can do the same thing.
- Sessions can be switched between by calling ActivateSession on
org.freedesktop.login1.Seat.  This triggers a VT switch to the VT that
session is on.
- The DM destroys the session with ?.

Questions:

- There are cases where switching users needs to be performed by the
DM, e.g. if switching should go to a new session for authentication
before unlocking the requested session or if you're using a non-VT
based multiplexer. To achieve this would a "ActivateSession" signal be
needed on the Seat object for the DM to listen to?
- In the above case a VT switch might be the wrong thing to do, do you
see a method of disabling the VT switch?  e.g. Could you register the
session with a hint so logind doesn't try and switch to it?
- There are other types of switches, e.g. switch to a guest account -
do you see a method of signalling this through systemd?  Associated is
the ability for a UI to check if it has permissions for the various
switch types.
- Can a logged in user request a new session on their seat? i.e.
switch to a login screen to start a new session
- Where do you any seat specific configuration stored, e.g. what
greeter is running on that seat / what sessions are allowed?  (Should
a DM have additional configuration keyed by seat IDs?).

A wikipage like
http://www.freedesktop.org/wiki/Software/systemd/localed would be much
appreciated for logind, even if it just contains a dump of the current
interface and a quick paragraph.

Thanks
--Robert

[1] http://www.freedesktop.org/wiki/Software/systemd/multiseat


More information about the systemd-devel mailing list