43 lines
1.1 KiB
Nix
43 lines
1.1 KiB
Nix
{ lib, config, pkgs, inputs, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
modulesPath = ./generated/modules;
|
|
|
|
# Import all modules recursively
|
|
importedModules = inputs.import-tree modulesPath;
|
|
|
|
# Evaluate all modules
|
|
evaluatedModules =
|
|
map (m:
|
|
if builtins.isFunction m then m { inherit lib config pkgs; } else m
|
|
) importedModules.imports;
|
|
|
|
# Attach names
|
|
modulesWithNames =
|
|
map (m: {
|
|
name = if m ? _file then lib.removeSuffix ".nix" (builtins.baseNameOf m._file) else "unknown";
|
|
value = m;
|
|
}) evaluatedModules;
|
|
|
|
# Filter enabled modules from config file (optional)
|
|
moduleSwitches = import ../../../assets/system/conf/modules.conf;
|
|
enabledModules =
|
|
builtins.filter (m: moduleSwitches.${m.name} or false) modulesWithNames;
|
|
|
|
# Collect Home Manager user attrsets
|
|
hmUsersList = map (m: m.value._module.args.hmUsers or {}) enabledModules;
|
|
|
|
in {
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
imports = [
|
|
./boot.nix
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
# Merge Home Manager user configurations
|
|
home-manager.users = lib.mkMerge hmUsersList;
|
|
}
|