[systemd-devel] Display manager and logind interaction
robert.ancell at gmail.com
Sat Feb 11 03:14:41 PST 2012
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.
- 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 ?.
- 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
- 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.
More information about the systemd-devel