From 6ff86c6215584a796abda571756defedcf9071ca Mon Sep 17 00:00:00 2001 From: Jeffrey Leon Date: Wed, 1 Jul 2026 12:47:54 -0400 Subject: [PATCH] fix(status): repaint the command-prompt over the status line The rename-window and command-mode (`:`) prompt drew over the custom status-format, so the window list and modules bled through the prompt until it closed. tmux's message overlay fully replaces the line only with `fill` (which repaints the whole width) and without `align` (any alignment leaves the status visible on the uncovered side); themux previously set `align=centre` and no `fill`. When the status bar is transparent (@themux_status_background none) the overlay also needs an opaque background, so it uses @thm_mantle there. Release-As: 0.3.1 --- themux.conf | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/themux.conf b/themux.conf index 5b40f1e..e1a3c25 100644 --- a/themux.conf +++ b/themux.conf @@ -9,7 +9,10 @@ run "#{d:current_file}/utils/load_theme.sh" set -g status-style "default" set -g @_tmx_status_bg "default" - %hidden TMX_MESSAGE_BACKGROUND="default" + # The status bar is transparent, but the message/command-prompt overlay needs an + # opaque background: it draws OVER the status line, so a transparent fill would + # leave the status-format bleeding through the prompt (rename, command mode, ...). + %hidden TMX_MESSAGE_BACKGROUND="#{@thm_mantle}" %else # Treat @themux_status_background as a format string. set -gF status-style "bg=#{E:@themux_status_background},fg=#{@thm_fg}" @@ -42,9 +45,13 @@ source -F "#{d:current_file}/modules/zoom.conf" set -g @_tmx_module_divider \ "#[fg=#{E:@themux_module_divider_color},bg=default]#{E:@themux_module_divider}" -# messages -set -gF message-style "fg=#{@thm_teal},bg=$TMX_MESSAGE_BACKGROUND,align=centre" -set -gF message-command-style "fg=#{@thm_teal},bg=$TMX_MESSAGE_BACKGROUND,align=centre" +# messages / command-prompt (rename-window, command mode, confirm-before). `fill` +# repaints the whole status line with the message background so the prompt fully +# replaces the status-format instead of drawing over it — without `fill` the +# window list and modules bleed through the prompt. `align` must NOT be set: any +# alignment defeats the fill and the status re-appears on the uncovered side. +set -gF message-style "fg=#{@thm_teal},bg=$TMX_MESSAGE_BACKGROUND,fill=$TMX_MESSAGE_BACKGROUND" +set -gF message-command-style "fg=#{@thm_teal},bg=$TMX_MESSAGE_BACKGROUND,fill=$TMX_MESSAGE_BACKGROUND" # menu %if "#{>=:#{version},3.4}"