43 lines
983 B
Nix
43 lines
983 B
Nix
{ lib, config, pkgs, flakeRoot, ... }:
|
|
|
|
let
|
|
username = config.defaultUser or "henrov";
|
|
|
|
# Base home directory
|
|
homeDir = config.home.homeDirectory or "/home/${username}";
|
|
|
|
# Absolute path to assets
|
|
assetPath = "${flakeRoot}/assets/copy_2_home";
|
|
|
|
# Helper: recursively list all files and their relative paths
|
|
recursiveFiles = path:
|
|
let
|
|
entries = builtins.attrNames (builtins.readDir path);
|
|
in
|
|
lib.concatMap (name:
|
|
let full = "${path}/${name}";
|
|
in if builtins.isDir full
|
|
then map (sub: "${name}/${sub}") (recursiveFiles full)
|
|
else [ name ]
|
|
) entries;
|
|
|
|
allFiles = recursiveFiles assetPath;
|
|
|
|
# Map each file to a home.file entry
|
|
homeFiles = lib.genAttrs allFiles (relativePath: {
|
|
name = relativePath;
|
|
value = {
|
|
source = "${assetPath}/${relativePath}";
|
|
};
|
|
});
|
|
in
|
|
{
|
|
_module.args.hmUsers = {
|
|
${username} = {
|
|
home.file = lib.mkMerge [
|
|
homeFiles
|
|
];
|
|
};
|
|
};
|
|
}
|