From 17bd6e43c6d621f65da7e7c6b2ccd7863c670169 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 8 Jul 2019 21:23:49 +0200 Subject: [PATCH] tools/direnv: consult direnv less frequently By checking on doom-switch-{buffer,window}-hook and focus-in-hook, which fires a lot less often than post-command-hook. --- modules/tools/direnv/config.el | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index 7715710fa..2ffd62137 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -3,5 +3,15 @@ (def-package! direnv :after-call (after-find-file dired-initial-position-hook) :config + (defun +direnv|init () + "Instead of checking for direnv on `post-command-hook', check on +buffer/window/frame switch, which is less expensive." + (direnv--disable) + (when direnv-mode + (add-hook 'doom-switch-buffer-hook #'direnv--maybe-update-environment) + (add-hook 'doom-switch-window-hook #'direnv--maybe-update-environment) + (add-hook 'focus-in-hook #'direnv--maybe-update-environment))) + (add-hook 'direnv-mode-hook #'+direnv|init) + (when (executable-find "direnv") (direnv-mode +1)))