From 1da7188781252ed9acbaa78ae7a631c2157c3fc2 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Tue, 9 Jun 2026 04:53:45 -0700 Subject: [PATCH] nixos/remote-hyprland: stop seatd restart loop (Type=simple) seatd's upstream unit is Type=notify wrapped in sdnotify-wrapper, but the readiness notification never reaches systemd on railbird-sf, so the unit hits its 90s start timeout and restart-loops indefinitely (restart counter climbed past 50). Every cycle tears down /run/seatd.sock, which breaks any libseat client that needs a stable seat (e.g. a headless Hyprland session). seatd creates its socket immediately on startup, so Type=simple is sufficient; override it with mkForce. Verified live: active(running), stable socket, zero restarts. Co-Authored-By: Claude Opus 4.8 --- nixos/remote-hyprland.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nixos/remote-hyprland.nix b/nixos/remote-hyprland.nix index aac42bfb..24ee8170 100644 --- a/nixos/remote-hyprland.nix +++ b/nixos/remote-hyprland.nix @@ -160,6 +160,14 @@ group = "video"; }; + # seatd's upstream unit is Type=notify wrapped in sdnotify-wrapper, but the + # readiness notification never reaches systemd on this host, so it hits the + # 90s start timeout and restart-loops forever (counter climbed past 50), + # tearing down /run/seatd.sock on every cycle and breaking any libseat + # client (e.g. a headless Hyprland). seatd creates its socket immediately on + # startup, so Type=simple is sufficient and stays active. + systemd.services.seatd.serviceConfig.Type = lib.mkForce "simple"; + users.manageLingering = true; users.users.${cfg.user}.linger = true;