summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--user/settings/development/base.nix10
1 files changed, 10 insertions, 0 deletions
diff --git a/user/settings/development/base.nix b/user/settings/development/base.nix
index 9de20fc4..6eff88cf 100644
--- a/user/settings/development/base.nix
+++ b/user/settings/development/base.nix
@@ -47,4 +47,14 @@ in
   programs.zsh.initExtra = ''
     source ${direnvHook}
   '';
+  xdg.configFile."direnv/direnvrc".text = ''
+    declare -A direnv_layout_dirs
+    direnv_layout_dir() {
+      echo "''${direnv_layout_dirs[$PWD]:=$(
+        local hash="$(${pkgs.coreutils}/bin/sha256sum - <<<"$\{PWD}" | cut -c-7)"
+    		local path="''${PWD//[^a-zA-Z0-9]/-}"
+        echo "${config.xdg.cacheHome}/direnv/layouts/''${hash}''${path}"
+      )}"
+    }
+  '';
 }