diff --git a/pkgs/applications/editors/emacs/build-support/wrapper.nix b/pkgs/applications/editors/emacs/build-support/wrapper.nix index 8a36c507afff..694eaf512395 100644 --- a/pkgs/applications/editors/emacs/build-support/wrapper.nix +++ b/pkgs/applications/editors/emacs/build-support/wrapper.nix @@ -180,6 +180,13 @@ runCommand (lib.appendToName "with-packages" emacs).name ;; "$out/share/emacs/site-lisp" is added to load-path in wrapper.sh ;; "$out/share/emacs/native-lisp" is added to native-comp-eln-load-path in wrapper.sh (add-to-list 'exec-path "$out/bin") + ;; Also expose extra package binaries via PATH so that subprocesses + ;; which rebuild their environment from PATH (e.g. direnv/envrc) can + ;; still find them. See https://github.com/purcell/envrc/issues/9 + (let ((deps-bin "$out/bin") + (current-path (or (getenv "PATH") ""))) + (unless (member deps-bin (split-string current-path path-separator)) + (setenv "PATH" (concat deps-bin path-separator current-path)))) ${lib.optionalString withTreeSitter '' (add-to-list 'treesit-extra-load-path "$out/lib/") ''}