Skip to content

Commit c7b13f8

Browse files
authored
Fix regression from dual-line status bar feature (#382)
* Use status-left/status-right again for default one-line status bar * Use tmux default status-format setting for dual-line status bar feature, just split to separate lines for window-status and status-left/status-right fixes #381
1 parent 62f58f0 commit c7b13f8

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

config/defaults.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ export TMUX_POWERLINE_WINDOW_STATUS_SEPARATOR_DEFAULT=""
1616

1717
export TMUX_POWERLINE_MUTE_LEFT_KEYBINDING_DEFAULT=
1818
export TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING_DEFAULT=
19+
20+
# default tmux status-format, retrieve with:
21+
# tmux set-option -gu status-format
22+
# tmux show-option -g status-format
23+
export TMUX_POWERLINE_STATUS_FORMAT_WINDOW_DEFAULT="#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{E:window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-format}#[pop-default]#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{E:window-status-current-style},default},#{E:window-status-current-style},#{E:window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-current-format}#[pop-default]#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}"
24+
export TMUX_POWERLINE_STATUS_FORMAT_LEFT_DEFAULT="#[align=left range=left #{E:status-left-style}]#[push-default]#{T;=/#{status-left-length}:status-left}#[pop-default]#[norange default]"
25+
export TMUX_POWERLINE_STATUS_FORMAT_RIGHT_DEFAULT="#[nolist align=right range=right #{E:status-right-style}]#[push-default]#{T;=/#{status-right-length}:status-right}#[pop-default]#[norange default]"

lib/config_file.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ process_settings() {
4747
export TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING="${TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING_DEFAULT}"
4848
fi
4949

50+
if [ -z "$TMUX_POWERLINE_STATUS_FORMAT_WINDOW" ]; then
51+
export TMUX_POWERLINE_STATUS_FORMAT_WINDOW="${TMUX_POWERLINE_STATUS_FORMAT_WINDOW}"
52+
fi
53+
54+
if [ -z "$TMUX_POWERLINE_STATUS_FORMAT_LEFT" ]; then
55+
export TMUX_POWERLINE_STATUS_FORMAT_LEFT="${TMUX_POWERLINE_STATUS_FORMAT_LEFT}"
56+
fi
57+
58+
if [ -z "$TMUX_POWERLINE_STATUS_FORMAT_RIGHT" ]; then
59+
export TMUX_POWERLINE_STATUS_FORMAT_RIGHT="${TMUX_POWERLINE_STATUS_FORMAT_RIGHT}"
60+
fi
61+
5062
eval TMUX_POWERLINE_DIR_USER_SEGMENTS="$TMUX_POWERLINE_DIR_USER_SEGMENTS"
5163
eval TMUX_POWERLINE_DIR_USER_THEMES="$TMUX_POWERLINE_DIR_USER_THEMES"
5264
if [ -n "$TMUX_POWERLINE_DIR_USER_THEMES" ] && [ -f "${TMUX_POWERLINE_DIR_USER_THEMES}/${TMUX_POWERLINE_THEME}.sh" ]; then

main.tmux

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export TMUX_POWERLINE_DIR_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd
1010
source "${TMUX_POWERLINE_DIR_HOME}/lib/headers.sh"
1111
process_settings
1212

13+
# Apply default status-format to ensure default single-line status bar is working as
14+
# expected, especially when switching from dual-line status-bar.
15+
tmux set-option -gu status-format
16+
1317
# Configure tmux to use tmux-powerline.
1418
# It's assumed that this will override these setting if already set in tmux.conf, as TPM is recommended to be loaded last in the tmux.conf. Ref: https://github.com/tmux-plugins/tpm
1519
tmux set-option -g status "$TMUX_POWERLINE_STATUS_VISIBILITY"
@@ -21,11 +25,10 @@ tmux set-option -g message-style "$TMUX_POWERLINE_STATUS_STYLE"
2125
tmux set-option -g status-left-length $TMUX_POWERLINE_STATUS_LEFT_LENGTH
2226
tmux set-option -g status-right-length $TMUX_POWERLINE_STATUS_RIGHT_LENGTH
2327

24-
if [ "$TMUX_POWERLINE_STATUS_VISIBILITY" = "on" ]; then
25-
tmux set-option -g status-format[0] "#[align=left]#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh left)"
26-
tmux set-option -ag status-format[0] "#[align=centre]#{W:#{E:window-status-format} ,#{E:window-status-current-format} }"
27-
tmux set-option -ag status-format[0] "#[align=right]#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh right)"
28-
elif [ "$TMUX_POWERLINE_STATUS_VISIBILITY" = "2" ]; then
28+
tmux set-option -g status-left "#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh left)"
29+
tmux set-option -g status-right "#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh right)"
30+
31+
if [ "$TMUX_POWERLINE_STATUS_VISIBILITY" = "2" ]; then
2932
# handle TMUX_POWERLINE_WINDOW_STATUS_LINE=0 and fallback for misconfiguration
3033
if [ "$TMUX_POWERLINE_WINDOW_STATUS_LINE" != "1" ]; then
3134
window_status=0
@@ -34,9 +37,9 @@ elif [ "$TMUX_POWERLINE_STATUS_VISIBILITY" = "2" ]; then
3437
window_status=1
3538
left_right_status=0
3639
fi
37-
tmux set-option -g status-format[$window_status] "#[align=centre]#{W:#{E:window-status-format} ,#{E:window-status-current-format} }"
38-
tmux set-option -g status-format[$left_right_status] "#[align=left]#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh left)"
39-
tmux set-option -ag status-format[$left_right_status] "#[align=right]#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh right)"
40+
tmux set-option -g status-format[$window_status] "${TMUX_POWERLINE_STATUS_FORMAT_WINDOW:-${TMUX_POWERLINE_STATUS_FORMAT_WINDOW_DEFAULT}}"
41+
tmux set-option -g status-format[$left_right_status] "${TMUX_POWERLINE_STATUS_FORMAT_LEFT:-${TMUX_POWERLINE_STATUS_FORMAT_LEFT_DEFAULT}}"
42+
tmux set-option -ag status-format[$left_right_status] "${TMUX_POWERLINE_STATUS_FORMAT_RIGHT:-${TMUX_POWERLINE_STATUS_FORMAT_RIGHT_DEFAULT}}"
4043
fi
4144

4245
tmux set-option -g window-status-current-format "#(${TMUX_POWERLINE_DIR_HOME}/powerline.sh window-current-format)"

0 commit comments

Comments
 (0)