From dab348ace5387c8ee6d97d46f5c2028f14d5d1f0 Mon Sep 17 00:00:00 2001 From: thek4n Date: Tue, 11 Aug 2026 13:24:23 +0300 Subject: [PATCH] fix yazi keymap + ask one char after exit --- home/user/.config/yazi/keymap.toml | 2 +- home/user/.config/zsh/functions | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/home/user/.config/yazi/keymap.toml b/home/user/.config/yazi/keymap.toml index 55074ca..b05e29d 100644 --- a/home/user/.config/yazi/keymap.toml +++ b/home/user/.config/yazi/keymap.toml @@ -1,6 +1,6 @@ [[mgr.prepend_keymap]] on = "h" -run = "back" +run = "leave" desc = "Назад (вверх по иерархии)" [[mgr.prepend_keymap]] diff --git a/home/user/.config/zsh/functions b/home/user/.config/zsh/functions index de3c359..0f3bb06 100644 --- a/home/user/.config/zsh/functions +++ b/home/user/.config/zsh/functions @@ -1,11 +1,19 @@ # vim: ft=zsh +__read_single_char() { + local char + stty -echo -icanon min 1 time 0 2>/dev/null + char=$(dd bs=1 count=1 2>/dev/null) + stty echo icanon 2>/dev/null + printf "%s" "${char}" +} + __ask_user() { local answer local question="${1}" local default_value="${2}" printf '%s' "${question} (default=${default_value}): " >&2 - read -r answer + answer="$(__read_single_char)" if [ -z "${answer}" ]; then answer="${default_value}" @@ -96,7 +104,7 @@ ya() { local dir="$(cat "${tmp}")" rm -f "${tmp}" >/dev/null - if [ "${original_dir}" != "${dir}" ] && __is_yes "$(__ask_user "Change CWD to ${dir}? [y/N]" "N")"; then + if [ "${original_dir}" != "${dir}" ] && __is_yes "$(__ask_user "Change CWD to ${dir}? [y/N]" "y")"; then \cd "${dir}" fi }