diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 6a974b4..f333438 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -8,7 +8,7 @@ ../../nixos/home-manager.nix ../../nixos/nix.nix ../../nixos/systemd-boot.nix - ../../nixos/sddm.nix + ../../nixos/tuigreet.nix ../../nixos/users.nix ../../nixos/utils.nix ../../nixos/hyprland.nix diff --git a/nixos/tuigreet.nix b/nixos/tuigreet.nix new file mode 100644 index 0000000..fee50f1 --- /dev/null +++ b/nixos/tuigreet.nix @@ -0,0 +1,60 @@ +{ + pkgs, + config, + lib, + ... +}: let + c = config.lib.stylix.colors; + + theme = lib.concatStringsSep ";" [ + "border=#${c.base0D}" + "text=#${c.base05}" + "prompt=#${c.base0D}" + "action=#${c.base0C}" + "button=#${c.base0D}" + "container=#${c.base00}" + "input=#${c.base02}" + ]; + + tuigreet-launch = pkgs.writeShellScript "tuigreet-launch" '' + exec ${pkgs.tuigreet}/bin/tuigreet \ + --time \ + --time-format '%H:%M %A %d %B' \ + --sessions /run/current-system/sw/share/wayland-sessions \ + --remember \ + --remember-user-session \ + --asterisks \ + --greeting ' Welcome' \ + --container-padding 2 \ + --theme '${theme}' \ + --power-shutdown 'systemctl poweroff' \ + --power-reboot 'systemctl reboot' + ''; +in { + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${tuigreet-launch}"; + user = "greeter"; + }; + }; + }; + + # this is a life saver. + # literally no documentation about this anywhere. + # might be good to write about this... + # 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; + }; + + environment.systemPackages = [pkgs.tuigreet]; +}