Skip to content

Commit 444eb9b

Browse files
committed
#367 : add support for tmux-suspend
1 parent d184332 commit 444eb9b

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

segments/mode_indicator.sh

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
# - Copy mode: The mode when text is being copied. By default this is triggered
1414
# by pressing the prefix key followed by '['; see `man tmux` for more details.
1515
#
16+
# - Suspend mode: A custom mode by https://github.com/MunifTanjim/tmux-suspend/
17+
# This suspends prefix processing, allowing prefix keys to directly reach a
18+
# nested tmux.
19+
#
1620
# Normal & prefix modes toggle between each other, so they occupy the same
1721
# section of this segment. The other modes are independent of each other, so
1822
# they each have their own part of the segment. By default, all modes are
@@ -39,6 +43,11 @@ COPY_MODE_ENABLED_DEFAULT="true"
3943
COPY_MODE_TEXT_DEFAULT="copy"
4044
COPY_MODE_TEXT_COLOR_DEFAULT="$TMUX_POWERLINE_CUR_SEGMENT_FG"
4145

46+
SUSPEND_MODE_ENABLED_DEFAULT="true"
47+
48+
SUSPEND_MODE_TEXT_DEFAULT="SUSPEND"
49+
SUSPEND_MODE_TEXT_COLOR_DEFAULT="$TMUX_POWERLINE_CUR_SEGMENT_FG"
50+
4251
SEPARATOR_TEXT_DEFAULT=""
4352

4453
generate_segmentrc() {
@@ -61,6 +70,9 @@ export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_ENABLED="${COPY_MODE_ENABLED_
6170
# Copy mode text & color overrides. Defaults to "copy" & the segment foreground color set in the theme used.
6271
export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT="${COPY_MODE_TEXT_DEFAULT}"
6372
export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR=""
73+
# Suspend mode text & color overrides. Defaults to "SUSPEND" & the segment foreground color set in the theme used.
74+
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT="${SUSPEND_MODE_TEXT_DEFAULT}"
75+
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR=""
6476
# Separator text override. Defaults to " • ".
6577
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT="${SEPARATOR_TEXT_DEFAULT}"
6678
EORC
@@ -75,6 +87,7 @@ run_segment() {
7587
prefix_text_color="#[fg=$TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT_COLOR]"
7688
mouse_text_color="#[fg=$TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_TEXT_COLOR]"
7789
copy_text_color="#[fg=$TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR]"
90+
suspend_text_color="#[fg=$TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR]"
7891

7992
# Separator.
8093
separator="#[fg=$TMUX_POWERLINE_CUR_SEGMENT_FG]$TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT"
@@ -98,7 +111,13 @@ __normal_and_prefix_mode_indicator() {
98111

99112
normal_mode="$normal_text_color$TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_MODE_TEXT"
100113
prefix_mode="$prefix_text_color$TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT"
101-
normal_and_prefix_indicator="#{?client_prefix,$prefix_mode,$normal_mode}"
114+
suspend_mode="$suspend_text_color$TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT"
115+
116+
if [ "$(tmux show-option -qv key-table)" = "suspended" ] ; then
117+
normal_and_prefix_indicator="$suspend_mode"
118+
else
119+
normal_and_prefix_indicator="#{?client_prefix,$prefix_mode,$normal_mode}"
120+
fi
102121

103122
if [ -z "$segment" ]; then
104123
segment+="$normal_and_prefix_indicator"
@@ -190,6 +209,12 @@ __process_settings() {
190209
if [ -z "$TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR" ]; then
191210
export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR="${COPY_MODE_TEXT_COLOR_DEFAULT}"
192211
fi
212+
if [ -z "$TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT" ]; then
213+
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT="${SUSPEND_MODE_TEXT_DEFAULT}"
214+
fi
215+
if [ -z "$TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR" ]; then
216+
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR="${SUSPEND_MODE_TEXT_COLOR_DEFAULT}"
217+
fi
193218
if [ -z "$TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT" ]; then
194219
export TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT="${SEPARATOR_TEXT_DEFAULT}"
195220
fi

0 commit comments

Comments
 (0)