37 lines
906 B
Nix
37 lines
906 B
Nix
{ config, lib, inputs, ... }:
|
|
|
|
let
|
|
modulesPath = ./generated/parked;
|
|
|
|
importedModules = inputs.import-tree modulesPath;
|
|
|
|
# Load module switches
|
|
moduleSwitches = import ./assets/system/modules.conf;
|
|
|
|
# Filter enabled modules (keep attrset!)
|
|
enabledModules =
|
|
lib.filterAttrs (name: _: moduleSwitches.${name} or false)
|
|
importedModules.imports;
|
|
|
|
# Convert to list AFTER filtering
|
|
moduleList = builtins.attrValues enabledModules;
|
|
|
|
# Extract fragments
|
|
getFragment = module:
|
|
if builtins.hasAttr "homeManagerExtraUserFragment" module
|
|
then module.homeManagerExtraUserFragment
|
|
else {};
|
|
|
|
homeManagerExtraUserFragments =
|
|
lib.foldl' lib.mkMerge {} (map getFragment moduleList);
|
|
|
|
in
|
|
{
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
home-manager.users = lib.mkMerge [
|
|
(config.home-manager.users or {})
|
|
homeManagerExtraUserFragments
|
|
];
|