{ lib, config, pkgs, ... }: let username = config.defaultUser or "henrov"; assetPath = ../../../assets/copy_2_home; # readDir gives all entries in the folder entries = builtins.readDir assetPath; # generate xdg-style home.file entries homeFiles = lib.genAttrs (builtins.attrNames entries) (name: { # source path in store source = "${assetPath}/${name}"; }); in { _module.args.hmUsers = { ${username} = { # recursively copy all files under the top-level folder into home home.file = lib.mkMerge (map (name: { # target path in home name = name; value = { source = "${assetPath}/${name}"; }; }) (builtins.attrNames entries)); }; }; }