Commit graph

1 commit

Author SHA1 Message Date
Harald Sitter
75af4e0a12 implement SessionManagement1
SessionManagement1 provides control over which sessions are started by
the login manager. See the dbus API documentation for more information.

This commit lifts rust-ini from transitive dependency to direct
dependency since we need slightly better control over the ini content.

SessionManagement1 is implemented in both user and root scope. User
scope implements the public API and internally calls into root scope for
root-elevated actions, where necessary augmenting with user-level
actions (namely managing user systemd services).

Two SDDM configuration files are in play here

- `/etc/sddm.conf.d/yy-steamos-session.conf`: acting as "persistent"
default configuration
- `/etc/sddm.conf.d/zz-steamos-autologin.conf`: the "temporary"
configuration overrides the persistent one whenever present and is meant
to be cleared by either the login manager or the session. This follows
current behavior where we have oneshot sessions that simply reset the
temporary back to gamescope.

Internal configuration keys are stored in the persistent config inside
an `[X-SteamOS]` section.
2025-06-19 17:29:30 +02:00