From 482c3c5a474d401b352a7d78035b2df5d525f31c Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Fri, 17 Apr 2026 10:53:48 +0100 Subject: fix: query zellij tab index dynamically on each prompt The tab index was captured once at shell startup and cached in a variable. When tabs were closed and renumbered, the stale index persisted, showing wrong numbers. Now _zellij_tab_idx is a function that queries current-tab-info on every precmd/preexec call. --- home/.config/zsh/.zshrc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/home/.config/zsh/.zshrc b/home/.config/zsh/.zshrc index 139926d..22f70d6 100644 --- a/home/.config/zsh/.zshrc +++ b/home/.config/zsh/.zshrc @@ -146,10 +146,9 @@ fi # ── Zellij tab naming (dir:cmd like tmux) ──────────────────────────────────── if [[ -n "$ZELLIJ" ]]; then _zellij_dir() { [[ "$PWD" == "$HOME" ]] && echo '~' || echo "${PWD##*/}"; } - _zellij_tab_idx=$(zellij action current-tab-info 2>/dev/null | grep -oP 'position: \K\d+') - (( _zellij_tab_idx++ )) # 0-indexed → 1-indexed - _zellij_tab_precmd() { zellij action rename-tab "$_zellij_tab_idx:$(_zellij_dir)" 2>/dev/null; } - _zellij_tab_preexec() { zellij action rename-tab "$_zellij_tab_idx:$(_zellij_dir):${1%% *}" 2>/dev/null; } + _zellij_tab_idx() { echo $(( $(zellij action current-tab-info 2>/dev/null | grep -oP 'position: \K\d+') + 1 )); } + _zellij_tab_precmd() { zellij action rename-tab "$(_zellij_tab_idx):$(_zellij_dir)" 2>/dev/null; } + _zellij_tab_preexec() { zellij action rename-tab "$(_zellij_tab_idx):$(_zellij_dir):${1%% *}" 2>/dev/null; } add-zsh-hook precmd _zellij_tab_precmd add-zsh-hook preexec _zellij_tab_preexec fi -- cgit v1.2.3-70-g09d2