37 lines
1.0 KiB
Nix
37 lines
1.0 KiB
Nix
{ config, lib, inputs, ... }:
|
|
|
|
let
|
|
modulesPath = ./generated/parked;
|
|
|
|
# Laad alle modules
|
|
importedModules = inputs.import-tree modulesPath;
|
|
|
|
# Laad module switches
|
|
moduleSwitches = import ./assets/system/modules.conf;
|
|
|
|
# Filter ingeschakelde modules en zorg dat het een attrset blijft
|
|
enabledModules =
|
|
lib.filterAttrs (name: _: (moduleSwitches.${name} or false)) importedModules.imports;
|
|
|
|
# Converteer naar lijst (voor foldl'), maar check dat elk fragment een attrset is
|
|
moduleList = builtins.attrValues enabledModules;
|
|
|
|
# Haal Home Manager fragments veilig op
|
|
getFragment = module:
|
|
if builtins.hasAttr "homeManagerExtraUserFragment" module
|
|
then let frag = module.homeManagerExtraUserFragment; in
|
|
if builtins.isAttrs frag then frag else {}
|
|
else {};
|
|
|
|
homeManagerExtraUserFragments =
|
|
lib.foldl' lib.mkMerge {} (map getFragment moduleList);
|
|
|
|
in {
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
home-manager.users = lib.mkMerge [
|
|
homeManagerExtraUserFragments
|
|
];
|
|
}
|