{ 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 a single users attribute home-manager.users = lib.foldl' (acc m: acc // (m._module.args.hmUsers or {})) {} allModules; ################################# # System packages & helpers ################################# environment.systemPackages = [ pkgs.dconf ]; programs.dconf.enable = true; }