From 1dbbbd82fe6d428330f94176b84d85bd0c9150e9 Mon Sep 17 00:00:00 2001 From: Scott Scoble Date: Sat, 16 May 2026 19:13:41 -0700 Subject: [PATCH] Replace SDDM with greetd+tuigreet --- modules/hyprland.nix | 32 ++++++++++++++++++++++---------- modules/laptop.nix | 1 - 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/modules/hyprland.nix b/modules/hyprland.nix index 22e2f0c..d53da06 100644 --- a/modules/hyprland.nix +++ b/modules/hyprland.nix @@ -10,7 +10,7 @@ # Session variables environment.sessionVariables.NIXOS_OZONE_WL = "1"; - # Security - required for hyprlock + # Security — required for hyprlock security.pam.services.hyprlock = {}; # Polkit for GUI auth prompts @@ -28,21 +28,33 @@ }; }; - # Display manager - SDDM - services.displayManager.sddm = { + # Display manager — greetd (minimal, Wayland-native) + services.greetd = { enable = true; - wayland.enable = true; - theme = "catppuccin"; - # package is already in system via services.displayManager.sddm.enable settings = { - Theme = { - Font = "JetBrainsMono Nerd Font"; - CursorTheme = "Bibata-Modern-Classic"; + default_session = { + command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland"; + user = "greeter"; }; }; }; - services.displayManager.defaultSession = "hyprland"; + # Clear TTY before greetd starts to avoid boot message overlap + systemd.services.greetd.serviceConfig = { + TTYVTDisallocate = true; + Type = "idle"; + }; + + # Create greeter user for greetd + users.users.greeter = { + description = "Greeter"; + group = "greeter"; + isSystemUser = true; + }; + users.groups.greeter = {}; + + # Suppress kernel boot messages on console + boot.consoleLogLevel = 0; # XDG portal for Wayland xdg.portal = { diff --git a/modules/laptop.nix b/modules/laptop.nix index 32c5644..d42c8d5 100644 --- a/modules/laptop.nix +++ b/modules/laptop.nix @@ -6,7 +6,6 @@ # === System Packages === environment.systemPackages = with pkgs; [ papirus-icon-theme - catppuccin-sddm # Core development tools qmd nodejs