├── LICENSE ├── README.md ├── _assets └── gruvbox-dark.png ├── themes ├── ayu-light.tmuxtheme ├── gruvbox-dark.tmuxtheme ├── gruvbox-light-hard.tmuxtheme ├── solarized-dark.tmuxtheme ├── solarized-light.tmuxtheme └── two-firewatch-light.tmuxtheme └── tmuxcolors.tmux /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Dmitry Kabanov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tmux statusline themes 2 | 3 | This repository contains themes for `tmux` statusline. These themes are based 4 | on popular terminal color themes: 5 | 6 | - [Ayu](https://github.com/ayu-theme) by Ike Ku and Konstantin Pschera 7 | - [Gruvbox color scheme](https://github.com/morhetz/gruvbox-contrib) 8 | by Pavel Pertsev 9 | - [Solarized](http://ethanschoonover.com/solarized) by Ethan Schoonover 10 | - [Two Firewatch](https://github.com/rakr/vim-two-firewatch) by 11 | Ramzi Akremi 12 | 13 | The following light and dark options are implemented: 14 | - ayu-light 15 | - gruvbox-dark 16 | - gruvbox-light-hard 17 | - solarized-light 18 | - solarized-dark 19 | - two-firewatch-dark 20 | 21 | This is what Gruvbox dark theme looks like: 22 | 23 | ![Appearance of the Gruvbox-dark tmux theme](_assets/gruvbox-dark.png "Appearance of the Gruvbox dark tmux theme") 24 | 25 | 26 | ## Installation 27 | 28 | ### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (preferred method) 29 | 30 | Add plugin to the list of TPM plugins in `.tmux.conf`: 31 | 32 | set -g @plugin 'dmitry-kabanov/tmux-statusline-themes' 33 | 34 | Hit `prefix + I` to fetch the plugin and source it. 35 | 36 | ### Manual installation 37 | 38 | Here I assume that you want to install themes into directory 39 | `$HOME/.tmux/tmux-statusline-themes`. 40 | 41 | 1. Go to the directory `$HOME/.tmux`. If it doesn't exist, create it. 42 | 43 | 2. Clone this repository: 44 | 45 | git clone git@github.com:dmitry-kabanov/tmux-statusline-themes.git 46 | 47 | 3. To apply one of the themes, invoke the following command in any pane inside 48 | of `tmux`: 49 | 50 | tmux source-file $HOME/.tmux/tmux-statusline-themes/themes/.tmuxtheme 51 | 52 | 53 | ## Usage 54 | 55 | Choose theme by adding one of the options to `.tmux.conf`: 56 | 57 | - `set -g @tmux-statusline-theme 'ayu-light'`, 58 | - `set -g @tmux-statusline-theme 'gruvbox-dark'` (the default), 59 | - `set -g @tmux-statusline-theme 'solarized-light'`, 60 | - `set -g @tmux-statusline-theme 'solarized-dark'`, 61 | - `set -g @tmux-statusline-theme 'two-firewatch-dark'`. 62 | 63 | 64 | ## License 65 | 66 | This repo uses [MIT license](LICENSE). 67 | -------------------------------------------------------------------------------- /_assets/gruvbox-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dmitry-kabanov/tmux-statusline-themes/5239a3b8d0de860ef573a688678c64a47d3d431f/_assets/gruvbox-dark.png -------------------------------------------------------------------------------- /themes/ayu-light.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line for `ayu-light` color scheme. 2 | 3 | # Status bar colors. 4 | set-window-option -g status-style fg=brightyellow,bg=brightwhite,none 5 | 6 | # Window list colors. 7 | set-window-option -g window-status-style fg=white,bg=green,none 8 | set-window-option -g window-status-current-style fg=white,bg=brightgreen,bold 9 | set-window-option -g window-status-activity-style fg=white,bg=yellow,none 10 | 11 | # Pane divider colors. 12 | set-option -g pane-border-style fg=brightyellow,bg=default 13 | set-option -g pane-active-border-style fg=yellow,bg=default 14 | 15 | # Command-line messages colors. 16 | set-option message-style fg=brightyellow,bg=brightwhite 17 | 18 | # Set left and right sections. 19 | set-option -g status-left-length 20 20 | set-option -g status-left "#[fg=white,bg=green] #S " 21 | set-option -g status-right "#[fg=white,bg=green] #(whoami)@#H " 22 | 23 | # Set format of items in window list. 24 | setw -g window-status-format " #I:#W#F " 25 | setw -g window-status-current-format " #I:#W#F " 26 | 27 | # Set alignment of windows list. 28 | set-option -g status-justify centre 29 | 30 | # Identify activity in non-current windows. 31 | set-window-option -g monitor-activity on 32 | set-option -g visual-activity on 33 | -------------------------------------------------------------------------------- /themes/gruvbox-dark.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line with gruvbox dark colors. 2 | # Palette: https://github.com/morhetz/gruvbox#palette 3 | 4 | # Status bar colors. 5 | set-option -g status-fg colour223 # fg1 6 | set-option -g status-bg colour235 # bg0 7 | 8 | # Window list colors. 9 | set-window-option -g window-status-style fg=colour246,bg=colour239 10 | set-window-option -g window-status-current-style fg=colour235,bg=colour246,bright 11 | set-window-option -g window-status-activity-style fg=colour250,bg=colour241 12 | 13 | # Pane divider colors. 14 | set-option -g pane-border-style fg=colour239 # bg2 15 | set-option -g pane-border-style bg=colour235 # bg0 16 | set-option -g pane-active-border-style fg=colour142 # brightgreen 17 | set-option -g pane-active-border-style bg=colour235 # bg0 18 | 19 | # Command-line messages colors. 20 | set-option -g message-style fg=colour223 # fg1 21 | set-option -g message-style bg=colour235 # bg0 22 | set-option -g message-style bright 23 | 24 | # Set left and right sections. 25 | set-option -g status-left-length 20 26 | set-option -g status-left "#[fg=colour235,bg=colour246] #S " 27 | set-option -g status-right "#[fg=colour235,bg=colour246] #(whoami)@#H " 28 | 29 | # Set format of items in window list. 30 | setw -g window-status-format " #I:#W#F " 31 | setw -g window-status-current-format " #I:#W#F " 32 | 33 | # Set alignment of windows list. 34 | set-option -g status-justify centre 35 | 36 | # Identify activity in non-current windows. 37 | set-window-option -g monitor-activity on 38 | set-option -g visual-activity on 39 | -------------------------------------------------------------------------------- /themes/gruvbox-light-hard.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line with gruvbox light colors. 2 | # Palette: https://github.com/morhetz/gruvbox#light-mode-1 3 | 4 | # Status bar colors. 5 | set-option -g status-fg colour235 # fg1 6 | set-option -g status-bg colour230 # bg0 7 | 8 | # Window list colors. 9 | set-window-option -g window-status-style fg=colour230,bg=colour24 10 | set-window-option -g window-status-current-style fg=colour230,bg=colour136,bright 11 | set-window-option -g window-status-activity-style fg=colour230,bg=colour246 12 | 13 | # Pane divider colors. 14 | set-option -g pane-border-style fg=colour239 # bg2 15 | set-option -g pane-border-style bg=colour235 # bg0 16 | set-option -g pane-active-border-style fg=colour142 # brightgreen 17 | set-option -g pane-active-border-style bg=colour235 # bg0 18 | 19 | # Command-line messages colors. 20 | set-option -g message-style fg=colour235 # fg1 21 | set-option -g message-style bg=colour230 # bg0 22 | set-option -g message-style bright 23 | 24 | # Set left and right sections. 25 | set-option -g status-left-length 20 26 | set-option -g status-left "#[fg=colour15,bg=colour0] #S " 27 | set-option -g status-right "#[fg=colour15,bg=colour0] #(whoami)@#H " 28 | 29 | # Set format of items in window list. 30 | setw -g window-status-format " #I:#W#F " 31 | setw -g window-status-current-format " #I:#W#F " 32 | 33 | # Set alignment of windows list. 34 | set-option -g status-justify centre 35 | 36 | # Identify activity in non-current windows. 37 | set-window-option -g monitor-activity on 38 | set-option -g visual-activity on 39 | -------------------------------------------------------------------------------- /themes/solarized-dark.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line with solarized light colors. 2 | # Palette: http://ricky.thecampbells.info/solarized-quick-reference-posters/ 3 | 4 | # Status bar colors. 5 | set-window-option -g status-style fg=brightyellow,bg=brightblack,none 6 | 7 | # Window list colors. 8 | set-window-option -g window-status-style fg=white,bg=black,none 9 | set-window-option -g window-status-current-style fg=white,bg=brightgreen,bold 10 | set-window-option -g window-status-activity-style fg=white,bg=brightyellow,none 11 | 12 | # Pane divider colors. 13 | set-option -g pane-border-style fg=brightyellow,bg=default 14 | set-option -g pane-active-border-style fg=yellow,bg=default 15 | 16 | # Command-line messages colors. 17 | set-option message-style fg=brightyellow,bg=brightwhite 18 | 19 | # Set left and right sections. 20 | set-option -g status-left-length 20 21 | set-option -g status-left "#[fg=white,bg=black] #S " 22 | set-option -g status-right "#[fg=white,bg=black] #(whoami)@#H " 23 | 24 | # Set format of items in window list. 25 | setw -g window-status-format " #I:#W#F " 26 | setw -g window-status-current-format " #I:#W#F " 27 | 28 | # Set alignment of windows list. 29 | set-option -g status-justify centre 30 | 31 | # Identify activity in non-current windows. 32 | set-window-option -g monitor-activity on 33 | set-option -g visual-activity on 34 | -------------------------------------------------------------------------------- /themes/solarized-light.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line with solarized light colors. 2 | # Palette: http://ricky.thecampbells.info/solarized-quick-reference-posters/ 3 | 4 | # Status bar colors. 5 | set-window-option -g status-style fg=brightyellow,bg=brightwhite,none 6 | 7 | # Window list colors. 8 | set-window-option -g window-status-style fg=brightyellow,bg=brightwhite,none 9 | set-window-option -g window-status-current-style fg=white,bg=brightgreen,bold 10 | set-window-option -g window-status-activity-style fg=white,bg=brightcyan,none 11 | 12 | # Pane divider colors. 13 | set-option -g pane-border-style fg=brightyellow,bg=default 14 | set-option -g pane-active-border-style fg=yellow,bg=default 15 | 16 | # Command-line messages colors. 17 | set-option message-style fg=brightyellow,bg=brightwhite 18 | 19 | # Set left and right sections. 20 | set-option -g status-left-length 20 21 | set-option -g status-left "#[fg=white,bg=brightgreen] #S " 22 | set-option -g status-right "#[fg=white,bg=brightgreen] #(whoami)@#H " 23 | 24 | # Set format of items in window list. 25 | setw -g window-status-format " #I:#W#F " 26 | setw -g window-status-current-format " #I:#W#F " 27 | 28 | # Set alignment of windows list. 29 | set-option -g status-justify centre 30 | 31 | # Identify activity in non-current windows. 32 | set-window-option -g monitor-activity on 33 | set-option -g visual-activity on 34 | -------------------------------------------------------------------------------- /themes/two-firewatch-light.tmuxtheme: -------------------------------------------------------------------------------- 1 | # Tmux status line for the theme "Two Firewatch Dark" 2 | # See: https://github.com/rakr/vim-two-firewatch 3 | # See: https://github.com/rakr/iterm-two-firewatch 4 | 5 | # Status bar colors. 6 | set-window-option -g status-style fg=default,bg=default 7 | 8 | # Window list colors. 9 | set-window-option -g window-status-style fg=black,bg=blue,none 10 | set-window-option -g window-status-current-style fg=black,bold,bg=blue 11 | set-window-option -g window-status-activity-style fg=white,bg=brightcyan,none 12 | 13 | # Pane divider colors. 14 | set-option -g pane-border-style fg=yellow,bg=default 15 | set-option -g pane-active-border-style fg=red,bold,bg=default,bright 16 | 17 | # Command-line messages colors. 18 | set-option message-style fg=black,bg=white 19 | 20 | # Set left and right sections. 21 | set-option -g status-left-length 20 22 | set-option -g status-left "#[fg=black,bg=green] #S " 23 | set-option -g status-right "#[fg=black,bg=green] #(whoami)@#H " 24 | 25 | # Set format of items in window list. 26 | setw -g window-status-format " #I:#W#F " 27 | setw -g window-status-current-format " #I:#W#F " 28 | 29 | # Set alignment of windows list. 30 | set-option -g status-justify centre 31 | 32 | # Identify activity in non-current windows. 33 | set-window-option -g monitor-activity on 34 | set-option -g visual-activity on 35 | -------------------------------------------------------------------------------- /tmuxcolors.tmux: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | theme_option="@tmux-statusline-theme" 6 | default_theme="gruvbox-dark" 7 | 8 | get_tmux_option() { 9 | local option="$1" 10 | local default_value="$2" 11 | local option_value="$(tmux show-option -gqv "$option")" 12 | if [ -z "$option_value" ]; then 13 | echo "$default_value" 14 | else 15 | echo "$option_value" 16 | fi 17 | } 18 | 19 | main() { 20 | local theme="$(get_tmux_option "$theme_option" "$default_theme")" 21 | tmux source-file "$CURRENT_DIR/themes/${theme}.tmuxtheme" 22 | } 23 | 24 | main 25 | --------------------------------------------------------------------------------