From d2cc6663e7174c32006bcaa01ff7337fe9c0434e Mon Sep 17 00:00:00 2001 From: Timo Boomers Date: Tue, 24 Jun 2025 13:56:38 +0200 Subject: [PATCH] added greetd greeter for niri --- hosts/ti-clt-dsk01/configuration.nix | 4 +-- .../system/desktop-environments/cosmic.nix | 1 - modules/system/display-managers/default.nix | 3 +- modules/system/display-managers/greetd.nix | 35 +++++++++++++++++++ 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 modules/system/display-managers/greetd.nix diff --git a/hosts/ti-clt-dsk01/configuration.nix b/hosts/ti-clt-dsk01/configuration.nix index e4e0183..b31bc59 100644 --- a/hosts/ti-clt-dsk01/configuration.nix +++ b/hosts/ti-clt-dsk01/configuration.nix @@ -9,9 +9,9 @@ settings = { hostname = "ti-clt-dsk01"; - display-manager = "cosmic-greeter"; + display-manager = "greetd"; desktop-environments = { - cosmic.enable = true; + cosmic.enable = false; hyprland.enable = false; gnome.enable = false; niri.enable = true; diff --git a/modules/system/desktop-environments/cosmic.nix b/modules/system/desktop-environments/cosmic.nix index ef3926e..c62e624 100644 --- a/modules/system/desktop-environments/cosmic.nix +++ b/modules/system/desktop-environments/cosmic.nix @@ -19,7 +19,6 @@ in { # ]; config = mkIf cfg.enable { - services.displayManager.cosmic-greeter.enable = true; services.desktopManager.cosmic.enable = true; environment.sessionVariables = { diff --git a/modules/system/display-managers/default.nix b/modules/system/display-managers/default.nix index d98a575..3ee1a0f 100644 --- a/modules/system/display-managers/default.nix +++ b/modules/system/display-managers/default.nix @@ -7,7 +7,7 @@ let in { options = { settings.display-manager = lib.mkOption { - type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none"]; + type = lib.types.enum ["sddm" "cosmic-greeter" "gdm" "none" "greetd"]; description = '' Specify which display manager to use ''; @@ -18,5 +18,6 @@ in { ./sddm.nix ./cosmic-greeter.nix ./gdm.nix + ./greetd.nix ]; } diff --git a/modules/system/display-managers/greetd.nix b/modules/system/display-managers/greetd.nix new file mode 100644 index 0000000..43bd44d --- /dev/null +++ b/modules/system/display-managers/greetd.nix @@ -0,0 +1,35 @@ +{ lib, config, pkgs, ... }: + +with lib; + +let + cfg = config.settings.display-manager; +in { + config = mkIf (cfg == "greetd") { + # systemd.services.greetd = { + # serviceConfig.Type = "idle"; + # # unitConfig.After = [ "docker.service" ]; + # }; + + 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; + }; + + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd niri-session"; + user = "greeter"; + }; + }; + }; + }; +}