greetd optionals

This commit is contained in:
cnst
2024-09-24 17:45:28 +02:00
parent 693afe6f50
commit afe3852b9a
4 changed files with 58 additions and 15 deletions

View File

@@ -105,7 +105,7 @@
}; };
}; };
gnome-keyring = { gnome-keyring = {
enable = true; enable = false;
}; };
}; };
session = { session = {
@@ -132,6 +132,11 @@
}; };
greetd = { greetd = {
enable = true; enable = true;
gnomeKeyring.enable = false;
autologin = {
enable = false;
user = "cnst";
};
}; };
gvfs = { gvfs = {
enable = true; enable = true;

View File

@@ -127,6 +127,11 @@
}; };
greetd = { greetd = {
enable = true; enable = true;
gnomeKeyring.enable = false;
autologin = {
enable = false;
user = "cnst";
};
}; };
gvfs = { gvfs = {
enable = true; enable = true;

View File

@@ -128,6 +128,11 @@
}; };
greetd = { greetd = {
enable = true; enable = true;
gnomeKeyring.enable = false;
autologin = {
enable = false;
user = "toothpick";
};
}; };
gvfs = { gvfs = {
enable = true; enable = true;

View File

@@ -4,27 +4,55 @@
lib, lib,
... ...
}: let }: let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption mkMerge mkOption types;
cfg = config.modules.sysd.system.greetd; cfg = config.modules.sysd.system.greetd;
in { in {
options = { options = {
modules.sysd.system.greetd.enable = mkEnableOption "Enables greetd"; modules.sysd.system.greetd = {
enable = mkEnableOption {
type = types.bool;
default = false;
description = "Enables the greetd service.";
}; };
gnomeKeyring.enable = mkEnableOption {
type = types.bool;
default = false;
description = "Enables GnomeKeyring PAM service for greetd.";
};
autologin.enable = mkEnableOption {
type = types.bool;
default = false;
description = "Enables autologin for a specified user.";
};
autologin.user = mkOption {
type = types.str;
default = "cnst";
description = "The username to auto-login when autologin is enabled.";
};
};
};
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = mkMerge [
# AUTOLOGIN # Conditionally include initial_session if autologin is enabled
# initial_session = { (mkIf cfg.autologin.enable {
# command = "${pkgs.hyprland}/bin/Hyprland"; initial_session = {
# user = "cnst"; # <- select which user to auto-login command = "${pkgs.hyprland}/bin/Hyprland";
# }; user = cfg.autologin.user;
};
})
{
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet -r --remember-session --asterisks"; command = "${pkgs.greetd.tuigreet}/bin/tuigreet -r --remember-session --asterisks";
user = "greeter"; user = "greeter";
}; };
}
];
}; };
};
security.pam.services.greetd.enableGnomeKeyring = true; # Apply GnomeKeyring PAM Service based on user configuration
security.pam.services.greetd.enableGnomeKeyring = cfg.gnomeKeyring.enable;
}; };
} }