fix(system-manager): don't kill greetd session on every switch

greetd had Requires=userborn.service, but System Manager restarts the
oneshot userborn.service on every activation. The Requires propagates
that restart to greetd, which tears down the running Wayland session
(then Restart=always bounces it back to the greeter) on every switch.

Relax to Wants=userborn.service, keeping After= for ordering: userborn
still runs before greetd at boot, but its per-activation restart no
longer drags greetd (and the live session) down. X-RestartIfChanged=false
already prevented greetd's own restart; this closes the dependency path.

Assisted-by: pi (claude-opus-4-8)
This commit is contained in:
Gabriel Fontes
2026-08-06 23:31:10 -03:00
parent a4161de3bb
commit 99373cf795
@@ -48,8 +48,14 @@ in {
tmpfiles.rules = ["d /var/cache/tuigreet 0755 greeter greeter - -"];
services.greetd = {
wantedBy = ["multi-user.target"];
wants = ["systemd-user-sessions.service"];
requires = ["userborn.service"];
# Wants (not Requires) userborn: System Manager restarts the oneshot
# userborn.service on every activation, and a Requires= would propagate
# that restart to greetd, tearing down the live session on every switch.
# After= still orders userborn before greetd at boot.
wants = [
"systemd-user-sessions.service"
"userborn.service"
];
after = [
"systemd-user-sessions.service"
"getty@tty1.service"