{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }: let hostname = "traveldroid"; # Paths to your host modules and user modules modulesPath = "${flakeRoot}/generated/modules/${hostname}"; usersPath = "${flakeRoot}/generated/users"; # Import all modules using import-tree hostModules = import-tree modulesPath; globalUsers = import-tree usersPath; allModules = hostModules.imports ++ globalUsers.imports; in { ################################# # Core system config ################################# networking.hostName = hostname; system.stateVersion = "26.05"; ################################# # Imports ################################# imports = [ ./boot.nix ./hardware-configuration.nix # Home Manager module home-manager.nixosModules.home-manager ] ++ allModules; ################################# # Home Manager integration ################################# home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; # Merge all _module.args.hmUsers from modules into Home Manager users home-manager.users = lib.foldl' (acc: m: acc // (builtins.getAttr "_module" m ? args && m._module.args ? hmUsers then m._module.args.hmUsers else {})) {} allModules; ################################# # System packages & helpers ################################# environment.systemPackages = [ pkgs.dconf ]; programs.dconf.enable = true; }