{ lib, ... }: { home.file = let listFilesRecursive = dir: acc: lib.flatten ( lib.mapAttrsToList ( k: v: if v == "regular" then "${acc}${k}" else listFilesRecursive dir "${acc}${k}/" ) (builtins.readDir "${dir}/${acc}") ); toHomeFiles = dir: builtins.listToAttrs ( map (x: { name = "./.config/${x}"; value = { source = "${dir}/${x}"; force = true; recursive = true; }; }) (listFilesRecursive dir "") ); in toHomeFiles ../../dotfiles; }