From 1934c8f63e665f0dbd94877874c62244584cb9e9 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Sun, 13 Oct 2024 16:25:44 -0500 Subject: [PATCH] Add Make Direnv Less Noisy as a Unix TIL --- README.md | 3 ++- unix/make-direnv-less-noisy.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 unix/make-direnv-less-noisy.md diff --git a/README.md b/README.md index 2741c82..aa8dcc0 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1464 TILs and counting..._ +_1465 TILs and counting..._ --- @@ -1453,6 +1453,7 @@ _1464 TILs and counting..._ - [List The Stack Of Remembered Directories](unix/list-the-stack-of-remembered-directories.md) - [Load Env Vars In Bash Script](unix/load-env-vars-in-bash-script.md) - [Look Through All Files That Have Been Git Stashed](unix/look-through-all-files-that-have-been-git-stashed.md) +- [Make Direnv Less Noisy](unix/make-direnv-less-noisy.md) - [Map A Domain To localhost](unix/map-a-domain-to-localhost.md) - [Negative Look-Ahead Search With ripgrep](unix/negative-look-ahead-search-with-ripgrep.md) - [Occupy A Local Port With Netcat](unix/occupy-a-local-port-with-netcat.md) diff --git a/unix/make-direnv-less-noisy.md b/unix/make-direnv-less-noisy.md new file mode 100644 index 0000000..31197eb --- /dev/null +++ b/unix/make-direnv-less-noisy.md @@ -0,0 +1,32 @@ +# Make Direnv Less Noisy + +I've been using [`direnv`](https://direnv.net/) to manage project and folder +specific environment variables for a bit now. I've found it to be pretty +seamless. It can feel like it is littering my shell with too much output when I +change directories though. + +There are two levers to control its output. + +First, the direnv logs (e.g. `direnv: loading ~/.../.envrc`) can be controlled +with the `DIRENV_LOG_FORMAT` env var. Add this to the +`~/.config/direnv/direnvrc` file (add that directory and file if necessary). +You can leave it blank to altogether hide log messages or you can gray-out the +log messages like this: + +``` +export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m' +``` + +Second, you can hide the env var diff with a separate config. This diff is not +covered under the umbrella of logs controlled by the above setting. Set +[`hide_env_diff` in the `~/.config/direnv/direnv.toml` +file](https://direnv.net/man/direnv.toml.1.html#codehideenvdiffcode): + +```toml +[global] +hide_env_diff = true +``` + +This second config was only added as of `v2.34.0`. + +[source](https://esham.io/2023/10/direnv)