doomemacs/modules/tools/direnv
Henrik Lissner 261f94c768
bump: :tools
NicolasPetton/pass@5651da5313 -> NicolasPetton/pass@c721604b3b
Olivia5k/makefile-executor.el@170d14d834 -> Olivia5k/makefile-executor.el@d1d98eaf52
Silex/docker.el@cc0046e6a5 -> Silex/docker.el@6997c86a24
cjohansson/emacs-ssh-deploy@94b56c0428 -> cjohansson/emacs-ssh-deploy@95fb076c9b
editorconfig/editorconfig-emacs@6f6b5c1a95 -> editorconfig/editorconfig-emacs@2fed9599bc
emacs-lsp/dap-mode@de41d62fc4 -> emacs-lsp/dap-mode@096070aacf
emacs-lsp/lsp-mode@0dfe214573 -> emacs-lsp/lsp-mode@266945b3e4
emacs-pe/docker-tramp.el@930d7b46c1 -> emacs-pe/docker-tramp.el@19d0771db4
emacs-straight/eglot@a399fc0d03 -> emacs-straight/eglot@8ccec6532e
emacs-straight/rainbow-mode@8e96388fb4 -> emacs-straight/rainbow-mode@24437ec2c6
emacs-tree-sitter/tree-sitter-langs@944a734b7c -> emacs-tree-sitter/tree-sitter-langs@2f0f97abbd
emacsfodder/kurecolor@ac67ceba85 -> emacsfodder/kurecolor@fbf98e1e38
emacsorphanage/quickrun@7a89313c07 -> emacsorphanage/quickrun@6f96318930
meain/evil-textobj-tree-sitter@e8bb9d63de -> meain/evil-textobj-tree-sitter@19979843f5
millejoh/emacs-ipython-notebook@b2410dc96f -> millejoh/emacs-ipython-notebook@998ba22660
nicolaisingh/saveplace-pdf-view@54ed966b84 -> nicolaisingh/saveplace-pdf-view@abfb5e1f46
purcell/envrc@1954e8c0b5 -> purcell/envrc@33d01388ce
vedang/pdf-tools@bc2ba117e8 -> vedang/pdf-tools@c69e7656a4
xiongtx/eros@dd89102792 -> xiongtx/eros@a9a92bdc6b
zx2c4/password-store@26d2dae04b -> zx2c4/password-store@28cec11f1d

I've intentionally omitted magit from this list while I resolve
incompatibilities between code-review and later versions of
closql (emacsql).

I've also omitted treemacs b/c of #7410.
2023-09-12 21:30:56 +02:00
..
config.el fix(direnv): envrc triggering in its own internal buffers 2023-03-11 19:50:28 -05:00
doctor.el Add tools/direnv module 2019-04-05 03:16:37 -04:00
packages.el bump: :tools 2023-09-12 21:30:56 +02:00
README.org docs: change link format 2022-10-05 01:01:19 +02:00

:tools direnv

Description   unfold

This module integrates direnv into Emacs.

📌 direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh, fish shell and elvish to load or unload environment variables depending on the current directory. This allows project-specific environment variables without cluttering the ~/.profile file.

Before each prompt, direnv checks for the existence of a ".envrc" file in the current and parent directories. If the file exists (and is authorized), it is loaded into a bash sub-shell and all exported variables are then captured by direnv and then made available to the current shell.

Module flags

This module has no flags.

Hacks

  • envrc-mode has been modified to fail gracefully if direnv isn't available.
  • envrc-global-mode has been modified to activate envrc-mode sooner in the major mode activation process, so that any env state performed in mode hooks aren't overwritten by direnv.
  • Added direnv support for Org src blocks.

TODO Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module requires direnv.

MacOS

brew install direnv

Arch Linux

direnv is available on the AUR:

yay -S direnv

NixOS

environment.systemPackages = [ pkgs.direnv ];

Or $ nix-env -i direnv

TODO Usage

🔨 This module's usage documentation is incomplete. Complete it?

To make use of direnv you need a .envrc file in a directory. Any time you open a file or buffer in said directory, the doom-package:envrc Emacs package will kick in, activate the local env, and inject it into Emacs for the current buffer.

TODO Configuration

🔨 This module has no configuration documentation yet. Write some?

Troubleshooting

Report an issue?

direnv + nix is slow

Consider augmenting direnv with lorri, which will cache nix builds and speed up direnv tremendously:

services.lorri.enable = true;

Frequently asked questions

This module has no FAQs yet. Ask one?

TODO Appendix

🔨 This module has no appendix yet. Write one?