{ lib, config, inputs, ... }: let username = config.defaultUser or "henrov"; 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; moduleList = builtins.attrValues enabledModules; # Functie: forceer fragment naar attrset forceFragment = frag: let evaluated = if builtins.isFunction frag then frag {} else frag; asAttrs = if builtins.isAttrs evaluated then evaluated else {}; in # Filter eventueel verborgen thunks/lists lib.filterAttrs (name: _: builtins.isAttrs evaluated.${name} || builtins.isBool evaluated.${name} || builtins.isString evaluated.${name}) asAttrs; # Haal en forceer alle home-manager fragments safeFragments = map (m: forceFragment (if builtins.hasAttr "homeManagerExtraUserFragment" m then m.homeManagerExtraUserFragment else {})) moduleList; homeManagerExtraUserFragments = lib.foldl' lib.mkMerge {} safeFragments; in { networking.hostName = "traveldroid"; system.stateVersion = "26.05"; home-manager.users = homeManagerExtraUserFragments; }