summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dot-bashrc11
1 files changed, 11 insertions, 0 deletions
diff --git a/dot-bashrc b/dot-bashrc
index 3df8ad2..13d57f1 100644
--- a/dot-bashrc
+++ b/dot-bashrc
@@ -119,3 +119,14 @@ osc7_cwd() {
printf '\e]7;file://%s%s\e\\' "${HOSTNAME}" "${encoded}"
}
PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }osc7_cwd
+
+# Use `y` as a shell wrapper for Yazi
+# Provides ability to change the cwd when exiting Yazi
+# See https://yazi-rs.github.io/docs/quick-start/#shell-wrapper
+function y() {
+ local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
+ command yazi "$@" --cwd-file="$tmp"
+ IFS= read -r -d '' cwd < "$tmp"
+ [ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
+ /usr/bin/rm -f -- "$tmp"
+}