40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
{ lib, config, inputs,... }:
|
|
|
|
# Standaard username
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
|
|
# Modules directory en switches
|
|
modulesPath = ./generated/parked;
|
|
importedModules = inputs.import-tree.default modulesPath;
|
|
moduleSwitches = import ./assets/system/modules.conf;
|
|
|
|
# Alleen de ingeschakelde modules
|
|
enabledModules =
|
|
lib.filterAttrs (name: _: moduleSwitches.${name} or false)
|
|
importedModules.imports;
|
|
|
|
# Zet modules om naar lijst
|
|
moduleList = builtins.attrValues enabledModules;
|
|
|
|
# Haal home-manager fragmenten op en zorg dat het altijd attrsets zijn
|
|
getFragment = module:
|
|
if builtins.hasAttr "homeManagerExtraUserFragment" module
|
|
then module.homeManagerExtraUserFragment
|
|
else {};
|
|
|
|
safeFragments = map (frag:
|
|
if builtins.isAttrs frag then frag else {}
|
|
) (map getFragment moduleList);
|
|
|
|
# Merge alle fragments
|
|
homeManagerExtraUserFragments = lib.foldl' lib.mkMerge {} safeFragments;
|
|
|
|
in
|
|
{
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
home-manager.users = homeManagerExtraUserFragments;
|
|
}
|