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.
A handful of interface names got updated but the XML and implementations got
out of sync. This fixes that, as well as adding some missing comments and
fixing formatting in the XML.