nixcfg/nixosModules/desktop/greetd/default.nix

52 lines
1.6 KiB
Nix

{
inputs,
pkgs,
lib,
config,
...
}: {
options = {
alyraffauf.desktop.greetd.enable =
lib.mkEnableOption "Enable greetd.";
alyraffauf.desktop.greetd.session = lib.mkOption {
description = "Default command to execute on login.";
default = config.programs.hyprland.package + "/bin/Hyprland";
type = lib.types.str;
};
alyraffauf.desktop.greetd.autologin.enable = lib.mkOption {
description = "Whether to enable autologin.";
default = false;
type = lib.types.bool;
};
alyraffauf.desktop.greetd.autologin.user = lib.mkOption {
description = "User to autologin.";
default = "aly";
type = lib.types.str;
};
};
config = lib.mkIf config.alyraffauf.desktop.greetd.enable {
services = {
greetd = {
enable = true;
settings =
if config.alyraffauf.desktop.greetd.autologin.enable
then {
default_session = {
command = lib.mkDefault "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.alyraffauf.desktop.greetd.session}";
};
initial_session = {
command = config.alyraffauf.desktop.greetd.session;
user = config.alyraffauf.desktop.greetd.autologin.user;
};
}
else {
default_session = {
command = lib.mkDefault "${pkgs.greetd.tuigreet}/bin/tuigreet --asterisks -g 'Welcome to NixOS ${config.system.nixos.release}' --time --remember --cmd ${config.alyraffauf.desktop.greetd.session}";
};
};
};
};
};
}