Specification for org.freedesktop.DisplayManager DBus API?

David Herrmann dh.herrmann at gmail.com
Mon Mar 16 04:46:19 PDT 2015


Hi

On Sun, Mar 15, 2015 at 9:43 PM, Mathieu Parent <math.parent at gmail.com> wrote:
> 2015-03-15 18:36 GMT+01:00 David Herrmann <dh.herrmann at gmail.com>:
> [...]
>
>> Our plan with logind is to avoid any display-manager API. Instead, we
>> kinda want this to be 'session-activated'. That means, by using the
>> SwitchTo() API in logind, you can activate *any* VT (or using chvt, in
>> case CONFIG_VT=y). You can now configure service symlinks which are
>> activated by logind if a given VT position is activated and no session
>> is running on it. Therefore, a simply VT-switch to an empty session
>> will spawn your login-manager. Once the login manager is done, the
>> session can take over the same VT (or spawn on a new one, it's up to
>> the login-manager to decide).
>>
>> This is basically what we already do with autovt at .service to spawn
>> gettys on demand.
>>
>> This allows us to avoid running a login-manager on a fixed VT.
>> Instead, the user simply selects the VT where it wants to login and
>> the login-manager is spawned there. Imo, this feels more natural,
>> instead of having to 'know' where the login-manager is running and
>> switching to that VT. Furthermore, you now have control on which VT
>> your session is spawned, instead of a random VT.
>>
>> Once kdbus is done, I intend to go ahead and implement those ideas.
>> We've been talking about this for way to long without any code showing
>> up. Sorry for that.
>>
>> Comments?
>
> This looks great to me.

Good to hear!

> But how to know if the user wants a terminal
> or graphical session?
>
> VT > =7?

Right now we have a configuration option in logind which reserves VTs
for gettys (I think /etc/systemd/logind.conf ReserveVTs=). This will
obviously always work. However, note that if you disable CONFIG_VT=
and use a console replacement (like systemd-console, kmscon or fbterm)
you will eventually use the same login-manager as a graphical session.
So instead of selecting KDE, GNOME, etc. as session, you simply select
a terminal session and login.

Thanks
David


More information about the xdg mailing list