Add direnv config

This commit is contained in:
2026-01-30 17:22:19 +01:00
parent e8d58b71d6
commit 77d4a53df2
2 changed files with 18 additions and 3 deletions

View File

@@ -7,7 +7,7 @@
nix-direnv.enable = true; nix-direnv.enable = true;
}; };
home.sessionVariables = { home.file.".config/direnv/direnvrc" = {
DIRENV_CACHE = "${config.home.homeDirectory}/.cache/direnv"; source = ./direnv/direnvrc;
}; };
} }

15
programs/direnv/direnvrc Normal file
View File

@@ -0,0 +1,15 @@
# Place in ~/.config/direnv/direnvrc
# Two things to know:
# * `direnv_layour_dir` is called once for every {.direnvrc,.envrc} sourced
# * The indicator for a different direnv file being sourced is a different $PWD value
# This means we can hash $PWD to get a fully unique cache path for any given environment
: ${XDG_CACHE_HOME:=$HOME/.cache}
declare -A direnv_layout_dirs
direnv_layout_dir() {
echo "${direnv_layout_dirs[$PWD]:=$(
echo -n "$XDG_CACHE_HOME"/direnv/layouts/
echo -n "$PWD" | sha1sum | cut -d ' ' -f 1
)}"
}