{ lib, config, inputs, ... }: let username = config.defaultUser or "henrov"; modulesPath = ./generated/modules; imported = inputs.import-tree modulesPath; moduleSwitches = import ./assets/system/conf/modules.conf; # imported.imports is a LIST → filter it as a list enabledModules = builtins.filter (m: let name = if builtins.hasAttr "__file" m then builtins.baseNameOf m.__file else "unknown"; in moduleSwitches.${name} or false ) imported.imports; # evaluate modules evaluatedModules = map (m: if builtins.isFunction m then m { inherit lib config; } else m ) enabledModules; in { networking.hostName = "traveldroid"; system.stateVersion = "26.05"; home-manager.users = lib.mkMerge evaluatedModules; # debug environment.variables.LOADED_MODULES = builtins.concatStringsSep "," (map (m: if builtins.hasAttr "__file" m then builtins.baseNameOf m.__file else "unknown" ) enabledModules); }