Improve displayManager options

This commit is contained in:
Joshua Yuen 2025-07-26 03:49:57 -04:00
parent 4f32c90c26
commit 93f6f30175
Signed by: josh
GPG Key ID: 502720BC22ED411C
7 changed files with 55 additions and 26 deletions

View File

@ -13,6 +13,7 @@
];
modules.hyprland.enable = true;
modules.displayManager.displayManager = "gdm";
modules.zsh.enable = true;
modules.shell.defaultShell = "zsh";

View File

@ -1,5 +0,0 @@
{
# Set Display Manager
# 'gdm', 'sddm'
displayManager = "sddm";
}

View File

@ -1,20 +1,13 @@
{
host,
...
}: let
vars = import ../../hosts/${host}/variables.nix;
in {
}:
{
imports = [
./gdm.nix
./hyprland.nix
./packages.nix
./sddm.nix
./system.nix
./user.nix
]
++ (
if vars.displayManager == "gdm"
then [ ./gdm.nix ]
else if vars.displayManager == "sddm"
then [ ./sddm.nix ]
else []
);
];
}

View File

@ -1,9 +1,17 @@
{
config,
lib,
...
}:
with lib;
let
cfg = config.modules.displayManager;
in
{
services.xserver.displayManager.gdm = {
enable = true;
wayland.enable = true;
config = mkIf (cfg.displayManager == "gdm") {
services.xserver.displayManager.gdm = {
enable = true;
wayland = true;
};
};
}

View File

@ -1,12 +1,20 @@
{
config,
lib,
...
}:
with lib;
let
cfg = config.modules.displayManager;
in
{
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
config = mkIf (cfg.displayManager == "sddm") {
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
# To prevent getting stuck at shutdown
systemd.extraConfig = "DefaultTimeoutStopSec=10s";
# To prevent getting stuck at shutdown
systemd.extraConfig = "DefaultTimeoutStopSec=10s";
};
}

View File

@ -3,6 +3,7 @@
}:
{
imports = [
./displayManager.nix
./hyprland.nix
./shell.nix
./zsh.nix

View File

@ -0,0 +1,23 @@
{
config,
lib,
...
}:
with lib;
let
cfg = config.modules.displayManager;
in
{
options.modules.displayManager = {
displayManager = mkOption {
type = types.enum [
"gdm"
"sddm"
];
default = "sddm";
description = ''
The display manager to use.
'';
};
};
}