From 39c2dc2ac4a4de74947777c85291dcbb069aec03 Mon Sep 17 00:00:00 2001 From: Tri Vo Khac Date: Tue, 15 Sep 2026 11:06:53 +0700 Subject: [PATCH] fix(zsh): reap completed jobs before starship prompt --- zsh/.config/zsh/config/shell.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/zsh/.config/zsh/config/shell.zsh b/zsh/.config/zsh/config/shell.zsh index fba4995..98311b1 100644 --- a/zsh/.config/zsh/config/shell.zsh +++ b/zsh/.config/zsh/config/shell.zsh @@ -28,3 +28,15 @@ HISTSIZE=5000000 SAVEHIST=5000000 zstyle ':fzf-tab:complete:cd:*' fzf-preview 'lsd -1 --color=always --icon=always $realpath' + +# Starship counts every entry in jobstates, including completed jobs that zsh +# hasn't reaped yet. Run jobs before Starship's precmd hook so parallel Zinit +# updates don't leave a stale job badge in the prompt. +autoload -Uz add-zsh-hook + +_zinit_reap_done_jobs() { + jobs -p >/dev/null 2>&1 +} + +add-zsh-hook -d precmd _zinit_reap_done_jobs 2>/dev/null || true +precmd_functions=( _zinit_reap_done_jobs ${precmd_functions:#_zinit_reap_done_jobs} )