{ config, lib, pkgs, ... }: let # --- Path to your modules --- modulesPath = ./generated/modules; # --- Import all modules via import-tree --- importedModules = import-tree modulesPath; # --- Flatten the modules into a list --- allModules = builtins.attrValues importedModules.imports; # --- Helper: extract homeManagerExtraUsers if present --- getFragment = module: if builtins.hasAttr "homeManagerExtraFragments" module then module.homeManagerExtraFragments else {}; # --- Merge all fragments together --- mergedHomeManagerUsers = lib.foldl' lib.mkMerge {} (map getFragment allModules); in { # Host-specific configuration networking.hostName = "traveldroid"; system.stateVersion = "26.05"; # Enable modules enableFlatpaks = false; enableThunar = false; enableWofi = false; enableZenBrowser= false; enableEmacs = false; enableKitty = false; enableZsh = false; enableFonts = false; enableHyprland = true; enableStylix = false; # --- Inject the merged homeManagerExtraUsers fragments --- home-manager.users = lib.mkMerge [ config.home-manager.users mergedHomeManagerUsers ]; }