{ config, lib, inputs, ... }: let modulesPath = ./generated/parked; importedModules = inputs.import-tree modulesPath; # Load module switches moduleSwitches = import ./assets/system/modules.conf; # Filter enabled modules (keep attrset!) enabledModules = lib.filterAttrs (name: _: moduleSwitches.${name} or false) importedModules.imports; # Convert to list AFTER filtering moduleList = builtins.attrValues enabledModules; # Extract fragments getFragment = module: if builtins.hasAttr "homeManagerExtraUserFragment" module then module.homeManagerExtraUserFragment else {}; homeManagerExtraUserFragments = lib.foldl' lib.mkMerge {} (map getFragment moduleList); in { networking.hostName = "traveldroid"; system.stateVersion = "26.05"; home-manager.users = lib.mkMerge [ (config.home-manager.users or {}) homeManagerExtraUserFragments ];