{ lib, config, inputs, ... }: # Standaard username let username = config.defaultUser or "henrov"; # Modules directory en switches modulesPath = ./generated/parked; importedModules = inputs.import-tree modulesPath; moduleSwitches = import ./assets/system/modules.conf; # Alleen ingeschakelde modules (blijft attrset) enabledModules = lib.filterAttrs (name: _: moduleSwitches.${name} or false) importedModules.imports; # Zet modules om naar lijst moduleList = builtins.attrValues enabledModules; # Haal home-manager fragmenten op, converteer alles naar veilige attrsets getFragment = module: if builtins.hasAttr "homeManagerExtraUserFragment" module then module.homeManagerExtraUserFragment else {}; safeFragment = frag: if builtins.isAttrs frag then frag else if builtins.isFunction frag then {} else {}; safeFragments = map (frag: safeFragment (getFragment frag)) moduleList; # Merge alle veilige fragments homeManagerExtraUserFragments = lib.foldl' lib.mkMerge {} safeFragments; in { networking.hostName = "traveldroid"; system.stateVersion = "26.05"; home-manager.users = homeManagerExtraUserFragments; }