{ lib, config, inputs, ... }: 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 enabledModules = lib.filterAttrs (name: _: moduleSwitches.${name} or false) importedModules.imports; moduleList = builtins.attrValues enabledModules; # Functie: haal homeManagerExtraUserFragment en forceer het tot veilige attrset safeFragment = module: let frag = if builtins.hasAttr "homeManagerExtraUserFragment" module then module.homeManagerExtraUserFragment else {}; evaluated = if builtins.isFunction frag then frag {} else frag; in if builtins.isAttrs evaluated then evaluated else {}; # Alle fragments per module allFragments = map safeFragment moduleList; # Merge alles per gebruiker mergedForUser = lib.foldl' lib.mkMerge {} allFragments; in { networking.hostName = "traveldroid"; system.stateVersion = "26.05"; # Top-level key is username → value is attrset home-manager.users = { "${username}" = mergedForUser; }; }