# greetd login manager for m3-kratos (replaces broken GDM on nixos-unstable). # Uses tuigreet as the greeter, launching Hyprland after authentication. { pkgs, config, lib, ... }: let tuigreet = "${lib.getExe pkgs.tuigreet}"; # Use start-hyprland wrapper to avoid Hyprland startup warnings # withUWSM=true is set in programs.nix; start-hyprland handles this correctly hyprlandCmd = "${config.programs.hyprland.package}/bin/start-hyprland"; in { services.greetd = { enable = true; settings = { default_session = { user = "greeter"; # Minimal config: verified supported flags only # The --time and --remember are tested; power commands omitted # to avoid potential quoting/parsing issues command = builtins.concatStringsSep " " [ tuigreet "--time" "--remember" "--asterisks" "--cmd ${hyprlandCmd}" ]; }; }; }; # Required for --remember to persist username between logins systemd.tmpfiles.rules = [ "d /var/cache/tuigreet 0755 greeter greeter - -" ]; }