diff --git a/dot-config/zsh/interactive/direnv b/dot-config/zsh/interactive/direnv index 49e16f6..ba862dc 100644 --- a/dot-config/zsh/interactive/direnv +++ b/dot-config/zsh/interactive/direnv @@ -1,8 +1,12 @@ #! zsh _direnv_hook() { - eval "$(direnv export zsh)" + trap -- '' SIGINT + emulate zsh -c "$(direnv export zsh)" + trap - SIGINT } -typeset -ag precmd_functions -if (( $+commands[direnv] )) && [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then - precmd_functions+=(_direnv_hook) + +typeset -ag precmd_functions chpwd_functions +if (( $+commands[direnv] )); then + [[ -z ${precmd_functions[(r)_direnv_hook]} ]] && precmd_functions+=(_direnv_hook) + [[ -z ${chpwd_functions[(r)_direnv_hook]} ]] && chpwd_functions+=(_direnv_hook) fi