From 2cb47ef2cf05c7ecd908c9dd6c0da5f0aeab38de Mon Sep 17 00:00:00 2001 From: alexion Date: Fri, 24 Jul 2026 16:29:57 -0400 Subject: [PATCH] feat(direnv): add direnv with nix-direnv shell caching --- hosts/neogaia/default.nix | 1 + modules/direnv.nix | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 modules/direnv.nix diff --git a/hosts/neogaia/default.nix b/hosts/neogaia/default.nix index 22953b0..568d01a 100644 --- a/hosts/neogaia/default.nix +++ b/hosts/neogaia/default.nix @@ -47,6 +47,7 @@ modules.fish.defaultShell = true; modules.git.enable = true; + modules.direnv.enable = true; modules.tmux.enable = true; modules.nvim.enable = true; modules.agents.claude-code.enable = true; diff --git a/modules/direnv.nix b/modules/direnv.nix new file mode 100644 index 0000000..c2abe8f --- /dev/null +++ b/modules/direnv.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: +# direnv for the primary user, configured through home-manager. +let + cfg = config.modules.direnv; + user = config.user.name; +in +{ + options.modules.direnv.enable = + lib.mkEnableOption "direnv for the primary user, with nix-direnv shell caching"; + + config = lib.mkIf cfg.enable { + home-manager.users.${user}.programs.direnv = { + enable = true; + + # nix-direnv caches the evaluated shell so re-entering a directory is instant + # instead of re-running `nix develop`, and adds the `use flake` stdlib helper. + nix-direnv.enable = true; + }; + }; +}