fix: drop mkDefault on three more list options it was silently dropping
Some checks failed
Check / eval-and-lint (push) Has been cancelled

Same footgun as the home.packages fix, found by sweeping the tree for
`mkDefault` on list options that other modules contribute to at normal
priority (so filterOverrides discards the mkDefault def entirely):

  * themes/engine/sddm.nix — environment.systemPackages = mkDefault
    [ nomarchy-sddm-theme ] was dropped, so the SDDM greeter theme package
    was never installed (unthemed login).
  * themes/engine/plymouth.nix — boot.kernelParams = mkDefault [ quiet
    splash loglevel=3 … ] was dropped, so boots weren't quiet/clean.
  * features/desktop/waybar/default.nix — home.packages = mkDefault
    [ font-awesome ] was dropped, so waybar's icon font was missing.

Verified via eval: nomarchy-sddm-theme now in systemPackages, "quiet" in
kernelParams, font-awesome in home.packages. Left the genuinely-safe
single-definition mkDefaults alone (plymouth.themePackages,
resolved.fallbackDns, hyprsunset.extraArgs) and the hybridGPU videoDrivers
mkDefault (it outranks nixpkgs' mkOptionDefault on real hardware).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-05-31 13:59:46 +01:00
parent b029edb5b4
commit f34f59c2aa
3 changed files with 13 additions and 4 deletions

View File

@@ -47,7 +47,10 @@ in
style = lib.mkDefault (builtins.readFile styleFile);
};
home.packages = lib.mkDefault (with pkgs; [
# Not mkDefault: home.packages is a list other modules set at normal
# priority, so a mkDefault def is dropped — leaving font-awesome (waybar's
# icon font) uninstalled. Merge it in.
home.packages = with pkgs; [
font-awesome
]);
];
}

View File

@@ -70,5 +70,8 @@ in
theme = lib.mkDefault "nomarchy";
};
boot.kernelParams = lib.mkDefault [ "quiet" "splash" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "boot.shell_on_fail" ];
# Not mkDefault: kernelParams is a list nixpkgs and other modules add to at
# normal priority, so a mkDefault def is dropped — losing the quiet/splash
# boot. These params merge with (don't replace) the rest.
boot.kernelParams = [ "quiet" "splash" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "boot.shell_on_fail" ];
}

View File

@@ -36,7 +36,10 @@ in
user = lib.mkDefault "nomarchy";
};
environment.systemPackages = lib.mkDefault [ nomarchy-sddm-theme ];
# Not mkDefault: systemPackages is a list every module contributes to at
# normal priority, so a mkDefault def is dropped entirely — leaving the
# SDDM theme package uninstalled and the greeter unthemed.
environment.systemPackages = [ nomarchy-sddm-theme ];
# Enable Hyprland system-level dependencies
programs.hyprland = {