diff --git a/modules/home/nushell/config.nu b/modules/home/nushell/config.nu index 7ffcf43..5bc1380 100644 --- a/modules/home/nushell/config.nu +++ b/modules/home/nushell/config.nu @@ -186,21 +186,19 @@ $env.config.hooks = { } ] - env_change: { - PWD: [ - {|| - if not ($env.PWD | path join .envrc | path exists) { - return - } - if (which direnv | is-empty) { - return - } - - direnv export json | from json | default {} | load-env - $env.PATH = $env.PATH | split row (char env_sep) + pre_prompt: [ + {|| + if not ($env.PWD | path join .envrc | path exists) { + return } - ] - } + if (which direnv | is-empty) { + return + } + + direnv export json | from json | default {} | load-env + $env.PATH = $env.PATH | split row (char env_sep) + } + ] } let menus = [ @@ -289,6 +287,17 @@ def switch [] { nh os switch --file ($env.NH_FLAKE | path join default.nix) (open /etc/hostname | str trim) } + +def --env y [...args] { + let tmp = (mktemp -t "yazi-cwd.XXXXXX") + yazi ...$args --cwd-file $tmp + let cwd = (open $tmp) + if $cwd != "" and $cwd != $env.PWD { + cd $cwd + } + rm -fp $tmp +} + # fix sudo by prepending /run/wrappers/bin to the PATH. $env.PATH = ($env.PATH | split row (char esep) | prepend '/run/wrappers/bin') $env.PATH = ($env.PATH | split row (char esep) | prepend '/etc/profiles/per-user/cr/bin')