58 lines
1.3 KiB
Nix
58 lines
1.3 KiB
Nix
{ 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;
|
|
}
|