{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }: let hostname = "traveldroid"; modulesPath = "${flakeRoot}/generated/modules/${hostname}"; usersPath = "${flakeRoot}/generated/users"; # Import module trees (NOT evaluated yet) hostModules = import-tree modulesPath; globalUsers = import-tree usersPath; allModules = hostModules.imports ++ globalUsers.imports; # Collect all hmUsers safely hmUsersList = map (m: m._module.args.hmUsers or {}) allModules; in { ################################# # Core system config ################################# networking.hostName = hostname; system.stateVersion = "26.05"; ################################# # CRITICAL: enable Home Manager ################################# imports = [ ./boot.nix ./hardware-configuration.nix # THIS is required home-manager.nixosModules.home-manager ] ++ allModules; ################################# # Home Manager settings ################################# programs.home-manager.enable = true; # Merge all hmUsers from modules home-manager.users = lib.mkMerge hmUsersList; ################################# # Optional but recommended ################################# home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; }