From 739901d1743d58e394f3335fef2764bbd079ef08 Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sat, 5 Oct 2024 21:55:29 +0200 Subject: [PATCH] Add tuigreet module --- modules/nixos/tuigreet/default.nix | 57 +++++++++++++++++++++++++++ systems/x86_64-linux/aspi/default.nix | 6 ++- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 modules/nixos/tuigreet/default.nix diff --git a/modules/nixos/tuigreet/default.nix b/modules/nixos/tuigreet/default.nix new file mode 100644 index 0000000..1120122 --- /dev/null +++ b/modules/nixos/tuigreet/default.nix @@ -0,0 +1,57 @@ +{ + # Snowfall Lib provides a customized `lib` instance with access to your flake's library + # as well as the libraries available from your flake's inputs. + lib, + # An instance of `pkgs` with your overlays and packages applied is also available. + pkgs, + # You also have access to your flake's inputs. + inputs, + + # Additional metadata is provided by Snowfall Lib. + namespace, # The namespace used for your flake, defaulting to "internal" if not set. + system, # The system architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + format, # A normalized name for the system target (eg. `iso`). + virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + systems, # An attribute map of your defined hosts. + + # All other arguments come from the module system. + config, + ... +}: + +let + cfg = config.modules.tuigreet; +in +{ + options.modules.tuigreet = { + enable = lib.mkOption { default = false; }; + }; + + config = lib.mkIf cfg.enable { + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${lib.getExe pkgs.greetd.tuigreet} --time --remember --remember-session --cmd hyprland"; + user = "greeter"; + }; + }; + }; + + # https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/ + 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; + }; + + # unlock GPG keyring on login + security.pam.services.greetd.enableGnomeKeyring = true; + }; +} diff --git a/systems/x86_64-linux/aspi/default.nix b/systems/x86_64-linux/aspi/default.nix index 247a0d4..b93324a 100644 --- a/systems/x86_64-linux/aspi/default.nix +++ b/systems/x86_64-linux/aspi/default.nix @@ -73,9 +73,13 @@ locales.enable = true; # thunar.enable = true; pcmanfm.enable = true; + + # i3.enable = true; + # gdm.enable = true; + wayland.enable = true; hyprland.enable = true; - # i3.enable = true; + tuigreet.enable = true; }; nix.settings.auto-optimise-store = true;