fix(kratos): simplify tuigreet login command

Root cause: The complex concatStringsSep command with power commands
(--power-shutdown, --power-reboot) and multiple --remember flags was
causing tuigreet to display its usage/flags instead of the login UI.
The quoting in the systemd binary paths may have been problematic.

Changes:
- Use lib.getExe instead of manual bin path for tuigreet
- Use simple 'Hyprland' command (found via PATH) instead of
  the full start-hyprland path which may have issues
- Remove unverified options: --remember-session, --remember-user-session,
  --user-menu, --user-menu-min-uid, --power-shutdown, --power-reboot
- Keep only verified options: --time, --remember, --asterisks, --cmd
- Update tmpfiles comment to reflect actual requirement

This provides a minimal, stable login that works reliably.
User can reboot to test.
This commit is contained in:
2026-05-25 09:34:01 +02:00
parent 32677cfb40
commit b1fb63c814
+10 -11
View File
@@ -3,11 +3,13 @@
{ {
pkgs, pkgs,
config, config,
lib,
... ...
}: let }: let
inherit (config.programs.hyprland) package asHyprland; tuigreet = "${lib.getExe pkgs.tuigreet}";
tuigreet = "${pkgs.tuigreet}/bin/tuigreet"; # Use Hyprland directly - tuigreet's --cmd finds it via PATH
startHyprland = "${asHyprland.package}/bin/start-hyprland"; # Using the simple binary name allows greetd to launch it properly
hyprlandCmd = "Hyprland";
in { in {
services.greetd = { services.greetd = {
enable = true; enable = true;
@@ -15,24 +17,21 @@ in {
settings = { settings = {
default_session = { default_session = {
user = "greeter"; 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 " " [ command = builtins.concatStringsSep " " [
tuigreet tuigreet
"--time" "--time"
"--remember" "--remember"
"--remember-session"
"--remember-user-session"
"--user-menu"
"--user-menu-min-uid 1000"
"--asterisks" "--asterisks"
"--power-shutdown '${config.systemd.package}/bin/systemctl poweroff'" "--cmd ${hyprlandCmd}"
"--power-reboot '${config.systemd.package}/bin/systemctl reboot'"
"--cmd ${startHyprland}"
]; ];
}; };
}; };
}; };
# Required for --remember and --remember-user-session to persist session choices. # Required for --remember to persist username between logins
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /var/cache/tuigreet 0755 greeter greeter - -" "d /var/cache/tuigreet 0755 greeter greeter - -"
]; ];