├── .gitignore ├── README.rst ├── bootstrap.sh ├── demo-manual-coloring.gif ├── demo.gif ├── name2color.py ├── no-powerline-symbol.png ├── termcolor_256.sh ├── tmux-colortag-prompt.sh └── tmux-colortag.tmux /.gitignore: -------------------------------------------------------------------------------- 1 | .mypy_cache/ 2 | state 3 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | Tmux ColorTag Plugin/Theme 2 | -------------------------- 3 | 4 | .. raw:: html 5 | 6 |
7 | 8 |
9 | 10 | Also works for powerline haters with default setting. 11 | 12 | .. raw:: html 13 | 14 |
15 | 16 |
17 | 18 | What's This? 19 | ============ 20 | 21 | This is a very succinct plugin that colors the window tags according to their 22 | names. The color can even automatically change when your shell runs different 23 | programs! It also serves as a minimal theme that is friendly to any people who 24 | just want something simple and works. 25 | 26 | Features 27 | ======== 28 | 29 | - Automically color the window tabs by their name hash 30 | - Manual control of coloring in tmux (also saved) 31 | - Support Powerline symbols 32 | 33 | TLDR; I just want it 34 | ==================== 35 | 36 | - Execute the following line in your shell: 37 | :: 38 | 39 | curl -sS https://raw.githubusercontent.com/Determinant/tmux-colortag/master/bootstrap.sh | bash 40 | 41 | - Run ``tmux``, and then hit ``Ctrl+b``, release, then ``I`` so everything should be ready. 42 | 43 | Installation 44 | ============ 45 | 46 | - Make sure you have tmux plugin manager installed: https://github.com/tmux-plugins/tpm 47 | 48 | - Add it to the list of TPM plugins in ``.tmux.conf``: 49 | 50 | :: 51 | 52 | set -g @plugin 'Determinant/tmux-colortag' 53 | 54 | - Hit ``prefix`` + ``I`` to fetch the plugin and source it. 55 | 56 | - Optional: 57 | 58 | - To immediately play with the main feature, try ``prefix`` (``Ctrl+b`` by default) + ``,`` and change the window name. 59 | - NOTE: tmux won't change the window name automatically once you set it manually. To test the auto-changing color, just run any command in your new window. 60 | 61 | Help 62 | ==== 63 | Press ``prefix``, then ``C``, type ``help`` and press enter. 64 | 65 | Customization 66 | ============= 67 | 68 | - To manually set the color of the active window tag, press ``prefix`` + ``C`` and: 69 | 70 | - ``color-idx <0-255 color code>`` to manually set the color for the window index 71 | - ``color-name <0-255 color code>`` to manually set the color for the name 72 | - ``clear-idx`` clears the preivous color of the index 73 | - ``clear-name`` clears the preivous color of the name 74 | - ``clear-all`` use auto-coloring for all window tags 75 | 76 | .. raw:: html 77 | 78 |
79 | 80 |
81 | 82 | - If you would like to use Powerline symbols like shown in the demo, add the 83 | following line to the top of your ``.tmux.conf`` to enable them: 84 | 85 | :: 86 | 87 | TMUX_COLORTAG_USE_POWERLINE=yes 88 | # uncomment the following line to have rounded arrows 89 | # TMUX_COLORTAG_ROUNDED_POWERLINE=yes 90 | 91 | - To change the prompt key (``prefix`` + ``C``), specify your key in ``TMUX_COLORTAG_KEY``. 92 | 93 | - TIP: If you love the status bar on the top (instead of at the bottom by default in tmux), add ``set-option -g status-position top`` to your config file 94 | 95 | - Other tweakable variables: 96 | 97 | - ``TMUX_COLORTAG_TAG_BOLD``: specify ``yes`` if you want bold tag text 98 | - ``TMUX_COLORTAG_TAG_FOCUS_UNDERLINE``: specify ``yes`` if you want underlined text for the active tag 99 | - ``TMUX_COLORTAG_TAG_TEXT_COLOR`` 100 | - ``TMUX_COLORTAG_TAG_FOCUS_TEXT_COLOR`` 101 | - ``TMUX_ARROW_SYMBOL_L1`` 102 | - ``TMUX_ARROW_SYMBOL_L2`` 103 | - ``TMUX_ARROW_SYMBOL_R1`` 104 | - ``TMUX_ARROW_SYMBOL_R2`` 105 | - ``TMUX_COLORTAG_SET_INTERVAL``: for the best experience, this plugin 106 | assumes a short status update interval. To change it back, make it ``no`` or 107 | directly override the setting in your tmux config file. 108 | 109 | - ``TMUX_COLORTAG_TAG_ONLY``: if you only want to color the tags (without 110 | changing other styles such as borders), make it ``yes``. 111 | 112 | - ``TMUX_COLORTAG_IDX_SEP``: controls the separator between the window index and name. 113 | - ``TMUX_COLORTAG_SEP_LEFT_PADDING``: padding string before the separator 114 | - ``TMUX_COLORTAG_SEP_RIGHT_PADDING``: padding string after the separator 115 | - Theme colors (value example: "colour123") 116 | 117 | - ``colortag_bg0`` 118 | - ``colortag_bg1`` 119 | - ``colortag_white0``: font color of the active tag 120 | - ``colortag_white1``: color of the active pane border 121 | - ``colortag_lightgray`` 122 | - ``colortag_darkgray`` 123 | 124 | Update to the Latest Version 125 | ============================ 126 | 127 | - Hit ``prefix`` + ``U`` and choose this plugin. 128 | -------------------------------------------------------------------------------- /bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | if [[ ! -d ~/.tmux ]]; then 3 | git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 4 | fi 5 | if [[ -f ~/.tmux.conf ]]; then 6 | echo "Old tmux configuration detected, remove it before running." 7 | exit 1 8 | fi 9 | cat > ~/.tmux.conf << EOF 10 | set-option -g status-position top 11 | set -g @plugin 'tmux-plugins/tpm' 12 | set -g @plugin 'tmux-plugins/tmux-sensible' 13 | set -g @plugin 'Determinant/tmux-colortag' 14 | run -b '~/.tmux/plugins/tpm/tpm' 15 | EOF 16 | -------------------------------------------------------------------------------- /demo-manual-coloring.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Determinant/tmux-colortag/8cad56db38920a6b6581d367e7912fa600efdb2c/demo-manual-coloring.gif -------------------------------------------------------------------------------- /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Determinant/tmux-colortag/8cad56db38920a6b6581d367e7912fa600efdb2c/demo.gif -------------------------------------------------------------------------------- /name2color.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import argparse 3 | import os 4 | import sys 5 | import errno 6 | import hashlib 7 | import pickle 8 | 9 | 10 | def warn(msg): 11 | sys.stderr.write(msg + '\n') 12 | 13 | 14 | def error(msg): 15 | print("ColorTag: {}\n".format(msg)) 16 | 17 | 18 | # add your favorite color code (256) here as candidates 19 | colors = [ 20 | 63, 64, 65, 68, 103, 107, 21 | 166, 168, 172, 208, 203, 22 | 160, 161, 167, 137, 131 23 | ] 24 | 25 | parser = argparse.ArgumentParser(description='Maps tmux window tags to colors.') 26 | parser.add_argument('session', type=str, help='session name') 27 | parser.add_argument('idx', type=int, help='index of the window') 28 | parser.add_argument('name', type=str, help='name of the window') 29 | parser.add_argument('--color-idx', type=int, help='manually change the color mapping for an index') 30 | parser.add_argument('--color-name', type=int, help='manually change the color mapping for a name') 31 | parser.add_argument('--clear-idx', action='store_true') 32 | parser.add_argument('--clear-name', action='store_true') 33 | parser.add_argument('--clear', action='store_true') 34 | parser.add_argument('--show-state', action='store_true') 35 | args = parser.parse_args() 36 | 37 | xdg_config_home_path = os.environ.get("XDG_CONFIG_HOME") 38 | tmux_plugin_manager_path = os.environ.get("TMUX_PLUGIN_MANAGER_PATH") or "" 39 | if xdg_config_home_path is None: 40 | xdg_config_home_path = "" 41 | else: 42 | xdg_config_home_path = os.path.join(xdg_config_home_path, "tmux/plugins") 43 | 44 | try_plugin_paths = [os.path.expanduser(path) for path in [ 45 | xdg_config_home_path, 46 | tmux_plugin_manager_path, 47 | ]] 48 | 49 | tmux_plugins_path = None 50 | for plugin_path in try_plugin_paths: 51 | if os.path.exists(plugin_path): 52 | tmux_plugins_path = plugin_path 53 | break 54 | 55 | if tmux_plugins_path is None: 56 | tmux_plugins_path = os.path.expanduser("~/.tmux/plugins") 57 | 58 | state_prefix = os.path.join(tmux_plugins_path, "tmux-colortag/state") 59 | 60 | state = {} 61 | changed = True 62 | 63 | try: 64 | os.makedirs(state_prefix) 65 | except OSError as e: 66 | if e.errno != errno.EEXIST: 67 | raise 68 | saved_state = os.path.join( 69 | state_prefix, 70 | "{}.state".format(args.session)) 71 | 72 | try: 73 | with open(saved_state, "rb") as f: 74 | _state = pickle.load(f) 75 | if type(_state) is dict: 76 | state = _state 77 | changed = False 78 | except Exception: 79 | pass 80 | 81 | if args.clear: 82 | state = {} 83 | changed = True 84 | 85 | if len(args.name) > 100: 86 | error("invalid name") 87 | if args.idx < 0 or args.idx >= 1024: 88 | error("invalid idx") 89 | 90 | if args.show_state: 91 | print("ColorTag: manual coloring for session \"{}\"".format(args.session)) 92 | for (k, v) in state.items(): 93 | print("{} => colour{}".format(k, v)) 94 | sys.exit(0) 95 | 96 | if args.clear_idx: 97 | try: 98 | del state[args.idx] 99 | except Exception: 100 | pass 101 | changed = True 102 | 103 | if args.clear_name: 104 | try: 105 | del state[args.name] 106 | except Exception: 107 | pass 108 | changed = True 109 | 110 | if not (args.color_idx is None): 111 | if args.color_idx < 0 or args.color_idx >= 256: 112 | error("invalid color code") 113 | sys.exit(0) 114 | state[args.idx] = args.color_idx 115 | changed = True 116 | 117 | if not (args.color_name is None): 118 | if args.color_name < 0 or args.color_name >= 256: 119 | error("invalid color code") 120 | sys.exit(0) 121 | state[args.name] = args.color_name 122 | changed = True 123 | 124 | if changed: 125 | warn("wrote to the state") 126 | try: 127 | with open(saved_state, "wb") as f: 128 | pickle.dump(state, f) 129 | except Exception: 130 | warn("failed to dump file") 131 | sys.exit(0) 132 | 133 | c = state.get(args.idx, None) 134 | if c is None: 135 | c = state.get(args.name, None) 136 | if c is None: 137 | h = hashlib.sha1(args.name.encode('utf-8')).digest() 138 | if sys.version_info.major == 3: 139 | hn = int.from_bytes(h, byteorder='big') 140 | else: 141 | hn = 0 142 | for b in bytearray(h): 143 | hn = hn * 256 + int(b) 144 | c = colors[hn % len(colors)] 145 | 146 | print("colour{}".format(c)) 147 | -------------------------------------------------------------------------------- /no-powerline-symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Determinant/tmux-colortag/8cad56db38920a6b6581d367e7912fa600efdb2c/no-powerline-symbol.png -------------------------------------------------------------------------------- /termcolor_256.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # http://askubuntu.com/questions/821157/print-a-256-color-test-pattern-in-the-terminal 3 | echo "ColorTag: available color code" 4 | echo 5 | for i in {0..255} ; do 6 | printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i" 7 | if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then 8 | printf "\n"; 9 | fi 10 | done 11 | read -n 1 -s -r -p "[Press any key to exit]" 12 | -------------------------------------------------------------------------------- /tmux-colortag-prompt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | run_python() { 4 | err=$("$CURRENT_DIR/name2color.py" "$session" "$idx" "$name" "$@") || tmux display "ColorTag: invalid argument" 5 | if [[ "$err" != "" ]]; then 6 | tmux display "$err" 7 | fi 8 | } 9 | 10 | run_python_long() { 11 | "$CURRENT_DIR/name2color.py" "$session" "$idx" "$name" "$@" || echo "ColorTag: invalid argument" 12 | } 13 | 14 | CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 15 | case "$1" in 16 | prompt) 17 | tmux command-prompt -p '[ColorTag]:' "run-shell 'idx=#I name=#W session=#S $CURRENT_DIR/tmux-colortag-prompt.sh %1'" 18 | ;; 19 | color-idx) 20 | run_python --color-idx "$2" 21 | ;; 22 | color-name) 23 | run_python --color-name "$2" 24 | ;; 25 | clear-idx) 26 | run_python --clear-idx 27 | ;; 28 | clear-name) 29 | run_python --clear-name 30 | ;; 31 | clear-all) 32 | run_python --clear 33 | ;; 34 | manual-colors) 35 | run_python_long --show-state 36 | ;; 37 | colors) 38 | tmux new-window -n '[colors]' "$CURRENT_DIR/termcolor_256.sh" 39 | ;; 40 | '') ;; 41 | help) 42 | echo "# Tmux ColorTag" 43 | echo "# Ted Yin " 44 | echo "Note: color overriding order: color-idx > color-name > auto" 45 | echo "colors: show all available color codes" 46 | echo "color-idx <0-255>: manually set the color for the window index" 47 | echo "color-name <0-255>: manually set the color for the name" 48 | echo "clear-idx: clears the preivous color of the index" 49 | echo "clear-name: clears the preivous color of the name" 50 | echo "clear-all: use auto-coloring for all window tags" 51 | echo "manual-colors: show all memorized coloring for this session" 52 | ;; 53 | *) tmux display "ColorTag: invalid command"; exit 0;; 54 | esac 55 | -------------------------------------------------------------------------------- /tmux-colortag.tmux: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | TMUX_COLORTAG_SET_INTERVAL="${TMUX_COLORTAG_SET_INTERVAL:-yes}" 5 | TMUX_COLORTAG_TAG_ONLY="${TMUX_COLORTAG_TAG_ONLY:-no}" 6 | TMUX_COLORTAG_USE_POWERLINE="${TMUX_COLORTAG_USE_POWERLINE:-no}" 7 | TMUX_COLORTAG_ROUNDED_POWERLINE="${TMUX_COLORTAG_ROUNDED_POWERLINE:-no}" 8 | TMUX_COLORTAG_KEY="${TMUX_COLORTAG_KEY:-C}" 9 | TMUX_COLORTAG_TAG_BOLD="${TMUX_COLORTAG_TAG_BOLD:-no}" 10 | TMUX_COLORTAG_TAG_FOCUS_UNDERLINE="${TMUX_COLORTAG_TAG_FOCUS_UNDERLINE:-yes}" 11 | 12 | if [[ "$TMUX_COLORTAG_ROUNDED_POWERLINE" == yes ]]; then 13 | TMUX_ARROW_SYMBOL_L1="${TMUX_ARROW_SYMBOL_L1:-$(printf '\ue0b6')}" 14 | TMUX_ARROW_SYMBOL_L2="${TMUX_ARROW_SYMBOL_L2:-$(printf '\ue0b7')}" 15 | TMUX_ARROW_SYMBOL_R1="${TMUX_ARROW_SYMBOL_R1:-$(printf '\ue0b4')}" 16 | TMUX_ARROW_SYMBOL_R2="${TMUX_ARROW_SYMBOL_R2:-$(printf '\ue0b5')}" 17 | else 18 | TMUX_ARROW_SYMBOL_L1="${TMUX_ARROW_SYMBOL_L1:-$(printf '\ue0b2')}" 19 | TMUX_ARROW_SYMBOL_L2="${TMUX_ARROW_SYMBOL_L2:-$(printf '\ue0b3')}" 20 | TMUX_ARROW_SYMBOL_R1="${TMUX_ARROW_SYMBOL_R1:-$(printf '\ue0b0')}" 21 | TMUX_ARROW_SYMBOL_R2="${TMUX_ARROW_SYMBOL_R2:-$(printf '\ue0b1')}" 22 | fi 23 | 24 | if [[ "$TMUX_COLORTAG_SET_INTERVAL" == yes ]]; then 25 | tmux set -g status on 26 | tmux set -g status-interval 2 27 | fi 28 | 29 | tab_text_attr= 30 | if [[ "$TMUX_COLORTAG_TAG_BOLD" == yes ]]; then 31 | tab_text_attr+=",bold" 32 | fi 33 | focus_tab_text_attr="$tab_text_attr" 34 | if [[ "$TMUX_COLORTAG_TAG_FOCUS_UNDERLINE" == yes ]]; then 35 | focus_tab_text_attr+=",underscore" 36 | fi 37 | 38 | bg0=${colortag_bg0:-colour235} 39 | bg1=${colortag_bg1:-colour237} 40 | white0=${colortag_white0:-colour255} 41 | white1=${colortag_white1:-colour250} 42 | lightgray=${colortag_lightgray:-colour248} 43 | darkgray=${colortag_darkgray:-colour241} 44 | 45 | TMUX_COLORTAG_TAG_FOCUS_TEXT_COLOR="${TMUX_COLORTAG_TAG_FOCUS_TEXT_COLOR:-$white0}" 46 | TMUX_COLORTAG_TAG_TEXT_COLOR="${TMUX_COLORTAG_TAG_TEXT_COLOR:-$bg1}" 47 | 48 | if [[ "$TMUX_COLORTAG_TAG_FOCUS_HIGHLIGHT" == yes ]]; then 49 | tab_focus_fg="$TMUX_COLORTAG_TAG_FOCUS_HIGHLIGHT" 50 | fi 51 | 52 | if [[ "$TMUX_COLORTAG_TAG_ONLY" != yes ]]; then 53 | tmux set -g message-style fg=$bg1,bg=$lightgray 54 | tmux set -g message-command-style fg=$bg1,bg=$lightgray 55 | tmux set -g pane-active-border-style fg=$white1,bg=$bg0 56 | tmux set -g pane-border-style fg=$bg1,bg=$bg0 57 | tmux set -g window-style bg=$bg0 58 | tmux set -g mode-style fg=$bg1,bg=$white1 59 | fi 60 | 61 | tmux set -g status-style bg=$bg1 62 | tmux set -g window-status-separator "" 63 | tmux set -g window-status-style fg=$bg1,bg=$bg1,none 64 | tmux set -g window-status-activity-style bg=$bg1,fg=$lightgray,none 65 | tmux set -g window-status-bell-style bg=$bg1,fg=$lightgray,none 66 | 67 | RECOVER_BG="#[bg=$bg1]" 68 | LEFTBAR_FORMAT="$(printf "%s" \ 69 | "#{?client_prefix,#[fg=$darkgray]#[bg=$lightgray],#[fg=$lightgray]#[bg=$darkgray]} " \ 70 | "#S#{?client_prefix,#[fg=$lightgray],#[fg=$darkgray]}")" 71 | RIGHTBAR_DEFAULT="#[fg=$lightgray,bg=$darkgray]" 72 | RIGHTBAR_DEFAULT0="#[fg=$darkgray,bg=$bg1]" 73 | RIGHTBAR_HOST="#[fg=$bg1,bg=$lightgray]" 74 | RIGHTBAR_HOST0="#[fg=$lightgray,bg=$darkgray]" 75 | LOAD_DISP="#(awk '{print \$1, \$2, \$3}' /proc/loadavg)" 76 | TAB_COLOR="#(\"$CURRENT_DIR/name2color.py\" #S #I '#W')" 77 | TAB_PREBEGIN="#[fg=$bg1,bg=${TAB_COLOR}]" 78 | TAB_NORMAL_BEGIN="#[fg=${TMUX_COLORTAG_TAG_TEXT_COLOR}$tab_text_attr]" 79 | TAB_END="#[fg=$TAB_COLOR,bg=$bg1,none]" 80 | TAB_FOCUS_BEGIN_BG="#[bg=$TAB_COLOR]" 81 | TAB_FOCUS_BEGIN_FG="#[fg=$TMUX_COLORTAG_TAG_FOCUS_TEXT_COLOR$focus_tab_text_attr]" 82 | TAB_PREEND_FG="#[fg=${TMUX_COLORTAG_TAG_TEXT_COLOR},none]" 83 | TAB_FOCUS_BEGIN="${TAB_FOCUS_BEGIN_BG}${TAB_FOCUS_BEGIN_FG}" 84 | 85 | if [[ "$TMUX_COLORTAG_USE_POWERLINE" == no ]]; then 86 | TMUX_COLORTAG_SEP_LEFT_PADDING="${TMUX_COLORTAG_SEP_LEFT_PADDING:-}" 87 | TMUX_COLORTAG_SEP_RIGHT_PADDING="${TMUX_COLORTAG_SEP_RIGHT_PADDING:-}" 88 | TMUX_COLORTAG_IDX_SEP="${TMUX_COLORTAG_IDX_SEP:-|}" 89 | if [[ "$TMUX_COLORTAG_TAG_ONLY" != yes ]]; then 90 | tmux set -g status-left "${LEFTBAR_FORMAT} ${RECOVER_BG} " 91 | tmux set -g status-right "${RIGHTBAR_DEFAULT} ${LOAD_DISP} ${RIGHTBAR_HOST} #h " 92 | fi 93 | tmux set -g window-status-format "$(printf %s \ 94 | "${TAB_PREBEGIN} ${TAB_NORMAL_BEGIN}" \ 95 | "#I${TMUX_COLORTAG_SEP_LEFT_PADDING}${TMUX_COLORTAG_IDX_SEP}${TMUX_COLORTAG_SEP_RIGHT_PADDING}#W ${TAB_END} ")" 96 | tmux set -g window-status-current-format "$(printf %s \ 97 | "${TAB_PREBEGIN} ${TAB_FOCUS_BEGIN}" \ 98 | "#[nounderscore,nooverline]#I" \ 99 | "${TMUX_COLORTAG_SEP_LEFT_PADDING}${TMUX_COLORTAG_IDX_SEP}${TMUX_COLORTAG_SEP_RIGHT_PADDING}" \ 100 | "${TAB_FOCUS_BEGIN_FG}#W${TAB_PREEND_FG} ${TAB_END} ")" 101 | else 102 | TMUX_COLORTAG_SEP_LEFT_PADDING="${TMUX_COLORTAG_SEP_LEFT_PADDING:-}" 103 | TMUX_COLORTAG_SEP_RIGHT_PADDING="${TMUX_COLORTAG_SEP_RIGHT_PADDING:- }" 104 | TMUX_COLORTAG_IDX_SEP="${TMUX_COLORTAG_IDX_SEP:-$TMUX_ARROW_SYMBOL_R2}" 105 | 106 | if [[ "$TMUX_COLORTAG_TAG_ONLY" != yes ]]; then 107 | tmux set -g status-left "${LEFTBAR_FORMAT}${RECOVER_BG}${TMUX_ARROW_SYMBOL_R1} " 108 | tmux set -g status-right "$(printf %s \ 109 | "${RIGHTBAR_DEFAULT0}$TMUX_ARROW_SYMBOL_L1" \ 110 | "${RIGHTBAR_DEFAULT}${LOAD_DISP} " \ 111 | "${RIGHTBAR_HOST0}${TMUX_ARROW_SYMBOL_L1}" \ 112 | "${RIGHTBAR_HOST}#h ")" 113 | fi 114 | tmux set -g window-status-format "$(printf %s \ 115 | "${TAB_PREBEGIN}$TMUX_ARROW_SYMBOL_R1 ${TAB_NORMAL_BEGIN}" \ 116 | "#I${TMUX_COLORTAG_SEP_LEFT_PADDING}${TMUX_COLORTAG_IDX_SEP}${TMUX_COLORTAG_SEP_RIGHT_PADDING}#W${TAB_END}$TMUX_ARROW_SYMBOL_R1 ")" 117 | tmux set -g window-status-current-format "$(printf %s \ 118 | "${TAB_FOCUS_BEGIN_BG}$TMUX_ARROW_SYMBOL_R1 ${TAB_FOCUS_BEGIN_FG}" \ 119 | "#[nounderscore,nooverline]#I" \ 120 | "${TMUX_COLORTAG_SEP_LEFT_PADDING}${TMUX_COLORTAG_IDX_SEP}${TMUX_COLORTAG_SEP_RIGHT_PADDING}" \ 121 | "${TAB_FOCUS_BEGIN_FG}#W${TAB_PREEND_FG}${TAB_END}$TMUX_ARROW_SYMBOL_R1 ")" 122 | fi 123 | 124 | tmux bind-key "$TMUX_COLORTAG_KEY" run-shell "'$CURRENT_DIR/tmux-colortag-prompt.sh' prompt" 125 | --------------------------------------------------------------------------------