Improve displayManager options

This commit is contained in:
Joshua Yuen 2025-07-26 03:49:57 -04:00
parent e5bc8cb43f
commit 46f317d9b1
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.hyprland.enable = true;
modules.displayManager.displayManager = "gdm";
modules.zsh.enable = true; modules.zsh.enable = true;
modules.shell.defaultShell = "zsh"; 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 = [ imports = [
./gdm.nix
./hyprland.nix ./hyprland.nix
./packages.nix ./packages.nix
./sddm.nix
./system.nix ./system.nix
./user.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
{ {
config = mkIf (cfg.displayManager == "gdm") {
services.xserver.displayManager.gdm = { services.xserver.displayManager.gdm = {
enable = true; enable = true;
wayland.enable = true; wayland = true;
};
}; };
} }

View File

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

View File

@ -3,6 +3,7 @@
}: }:
{ {
imports = [ imports = [
./displayManager.nix
./hyprland.nix ./hyprland.nix
./shell.nix ./shell.nix
./zsh.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.
'';
};
};
}