From 59f582f8fd385915521695e0bf2e6ac00615b1f8 Mon Sep 17 00:00:00 2001 From: KoenDR06 Date: Mon, 8 Sep 2025 10:28:06 +0200 Subject: [PATCH] tuigreet --- machines/terra/modules.nix | 3 ++- modules/boot/default.nix | 1 + modules/boot/greeter/greetd.nix | 44 +++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 modules/boot/greeter/greetd.nix diff --git a/machines/terra/modules.nix b/machines/terra/modules.nix index bce392e..bfa5c93 100644 --- a/machines/terra/modules.nix +++ b/machines/terra/modules.nix @@ -13,7 +13,8 @@ boot = { loader.systemd.enable = true; - greeter.sddm.enable = true; + greeter.greetd.enable = true; + greeter.greetd.session = "Hyprland"; refind.enable = true; }; diff --git a/modules/boot/default.nix b/modules/boot/default.nix index 5830ec2..d86089a 100644 --- a/modules/boot/default.nix +++ b/modules/boot/default.nix @@ -3,6 +3,7 @@ ./greeter/sddm.nix ./greeter/gdm.nix ./greeter/cosmic.nix + ./greeter/greetd.nix ./refind.nix diff --git a/modules/boot/greeter/greetd.nix b/modules/boot/greeter/greetd.nix new file mode 100644 index 0000000..5bd3a40 --- /dev/null +++ b/modules/boot/greeter/greetd.nix @@ -0,0 +1,44 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkEnableOption mkIf mkOption types; + cfg = config.horseman.boot.greeter.greetd; + homeCfg = config.horseman; +in { + options = { + horseman.boot.greeter.greetd = { + enable = mkEnableOption "Greetd Greeter"; + session = mkOption {type = types.str;}; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + greetd.tuigreet + ]; + + services.greetd = { + enable = true; + settings = { + default_session = { + user = homeCfg.username; + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --greeting 'Please authenticate to continue' --asterisks --asterisks-char '*' --theme 'border=74;text=cyan;prompt=green;time=cyan;action=cyan;button=cyan;container=black;input=238' --cmd ${cfg.session}"; + }; + }; + }; + + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + }; +}