40 lines
1.3 KiB
Nix
40 lines
1.3 KiB
Nix
{ lib, config, inputs, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
|
|
modulesPath = ./generated/parked;
|
|
importedModules = inputs.import-tree modulesPath;
|
|
moduleSwitches = import ./assets/system/modules.conf;
|
|
|
|
# Alleen ingeschakelde modules (blijft attrset)
|
|
enabledModules =
|
|
lib.filterAttrs (name: _: moduleSwitches.${name} or false)
|
|
importedModules.imports;
|
|
|
|
moduleList = builtins.attrValues enabledModules;
|
|
|
|
# Functie: forceer fragment naar attrset
|
|
forceFragment = frag:
|
|
let
|
|
evaluated = if builtins.isFunction frag then frag {} else frag;
|
|
asAttrs = if builtins.isAttrs evaluated then evaluated else {};
|
|
in
|
|
# Filter eventueel verborgen thunks/lists
|
|
lib.filterAttrs (name: _: builtins.isAttrs evaluated.${name} || builtins.isBool evaluated.${name} || builtins.isString evaluated.${name}) asAttrs;
|
|
|
|
# Haal en forceer alle home-manager fragments
|
|
safeFragments =
|
|
map (m: forceFragment (if builtins.hasAttr "homeManagerExtraUserFragment" m
|
|
then m.homeManagerExtraUserFragment else {}))
|
|
moduleList;
|
|
|
|
homeManagerExtraUserFragments = lib.foldl' lib.mkMerge {} safeFragments;
|
|
|
|
in {
|
|
networking.hostName = "traveldroid";
|
|
system.stateVersion = "26.05";
|
|
|
|
home-manager.users = homeManagerExtraUserFragments;
|
|
}
|