diff --git a/.tmux.conf b/.tmux.conf index d04c21b..623ae66 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -24,7 +24,7 @@ setw -q -g utf8 on set -g history-limit 5000 # boost history # edit configuration -bind e new-window -n '~/.tmux.conf.local' "sh -c '\${EDITOR:-vim} ~/.tmux.conf.local && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\"'" +bind e new-window -n '~/.tmux.conf.local' "sh -c '\${EDITOR:-vim} ~/.tmux.conf.local ~/.tmux.conf.theme && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\"'" # reload configuration bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced' @@ -162,6 +162,8 @@ bind P choose-buffer # choose which buffer to paste from if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local' +if '[ -f ~/.tmux.conf.theme ]' 'source ~/.tmux.conf.theme' + # -- 8< ------------------------------------------------------------------------ diff --git a/.tmux.conf.local b/.tmux.conf.local index ae45b07..807e5bb 100644 --- a/.tmux.conf.local +++ b/.tmux.conf.local @@ -37,201 +37,6 @@ tmux_conf_new_pane_reconnect_ssh=false tmux_conf_new_session_prompt=false -# -- display ------------------------------------------------------------------- - -# RGB 24-bit colour support (tmux >= 2.2), possible values are: -# - true -# - false (default) -tmux_conf_theme_24b_colour=false - -# window style -tmux_conf_theme_window_fg='default' -tmux_conf_theme_window_bg='default' - -# highlight focused pane (tmux >= 2.1), possible values are: -# - true -# - false (default) -tmux_conf_theme_highlight_focused_pane=false - -# focused pane colours: -tmux_conf_theme_focused_pane_fg='default' -tmux_conf_theme_focused_pane_bg='#0087d7' # light blue - -# pane border style, possible values are: -# - thin (default) -# - fat -tmux_conf_theme_pane_border_style=thin - -# pane borders colours: -tmux_conf_theme_pane_border='#444444' # gray -tmux_conf_theme_pane_active_border='#00afff' # light blue - -# pane indicator colours -tmux_conf_theme_pane_indicator='#00afff' # light blue -tmux_conf_theme_pane_active_indicator='#00afff' # light blue - -# status line style -tmux_conf_theme_message_fg='#000000' # black -tmux_conf_theme_message_bg='#ffff00' # yellow -tmux_conf_theme_message_attr='bold' - -# status line command style ( : Escape) -tmux_conf_theme_message_command_fg='#ffff00' # yellow -tmux_conf_theme_message_command_bg='#000000' # black -tmux_conf_theme_message_command_attr='bold' - -# window modes style -tmux_conf_theme_mode_fg='#000000' # black -tmux_conf_theme_mode_bg='#ffff00' # yellow -tmux_conf_theme_mode_attr='bold' - -# status line style -tmux_conf_theme_status_fg='#8a8a8a' # light gray -tmux_conf_theme_status_bg='#080808' # dark gray -tmux_conf_theme_status_attr='none' - -# window status style -# - built-in variables are: -# - #{circled_window_index} -tmux_conf_theme_window_status_fg='#8a8a8a' # light gray -tmux_conf_theme_window_status_bg='#080808' # dark gray -tmux_conf_theme_window_status_attr='none' -tmux_conf_theme_window_status_format='#I #W' -#tmux_conf_theme_window_status_format='#{circled_window_index} #W' -#tmux_conf_theme_window_status_format='#I #W#{?window_bell_flag,๐Ÿ””,}#{?window_zoomed_flag,๐Ÿ”,}' - -# window current status style -# - built-in variables are: -# - #{circled_window_index} -tmux_conf_theme_window_status_current_fg='#000000' # black -tmux_conf_theme_window_status_current_bg='#00afff' # light blue -tmux_conf_theme_window_status_current_attr='bold' -tmux_conf_theme_window_status_current_format='#I #W' -#tmux_conf_theme_window_status_current_format='#{circled_window_index} #W' -#tmux_conf_theme_window_status_current_format='#I #W#{?window_zoomed_flag,๐Ÿ”,}' - -# window activity status style -tmux_conf_theme_window_status_activity_fg='default' -tmux_conf_theme_window_status_activity_bg='default' -tmux_conf_theme_window_status_activity_attr='underscore' - -# window bell status style -tmux_conf_theme_window_status_bell_fg='#ffff00' # yellow -tmux_conf_theme_window_status_bell_bg='default' -tmux_conf_theme_window_status_bell_attr='blink,bold' - -# window last status style -tmux_conf_theme_window_status_last_fg='#00afff' # light blue -tmux_conf_theme_window_status_last_bg='default' -tmux_conf_theme_window_status_last_attr='none' - -# status left/right sections separators -tmux_conf_theme_left_separator_main='' -tmux_conf_theme_left_separator_sub='|' -tmux_conf_theme_right_separator_main='' -tmux_conf_theme_right_separator_sub='|' -#tmux_conf_theme_left_separator_main='๎‚ฐ' # /!\ you don't need to install Powerline -#tmux_conf_theme_left_separator_sub='๎‚ฑ' # you only need fonts patched with -#tmux_conf_theme_right_separator_main='๎‚ฒ' # Powerline symbols or the standalone -#tmux_conf_theme_right_separator_sub='๎‚ณ' # PowerlineSymbols.otf font - -# status left/right content: -# - separate main sections with '|' -# - separate subsections with ',' -# - built-in variables are: -# - #{battery_bar} -# - #{battery_hbar} -# - #{battery_percentage} -# - #{battery_status} -# - #{battery_vbar} -# - #{circled_session_name} -# - #{hostname_ssh} -# - #{hostname} -# - #{loadavg} -# - #{pairing} -# - #{prefix} -# - #{root} -# - #{uptime_d} -# - #{uptime_h} -# - #{uptime_m} -# - #{uptime_s} -# - #{username} -# - #{username_ssh} -tmux_conf_theme_status_left=' โ #S | โ†‘#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} ' -tmux_conf_theme_status_right='#{prefix}#{pairing} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} ' - -# status left style -tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4' # black, white , white -tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff' # yellow, pink, white blue -tmux_conf_theme_status_left_attr='bold,none,none' - -# status right style -tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000' # light gray, white, black -tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4' # dark gray, red, white -tmux_conf_theme_status_right_attr='none,none,bold' - -# pairing indicator -tmux_conf_theme_pairing='๐Ÿ‘“ ' # U+1F453 -tmux_conf_theme_pairing_fg='none' -tmux_conf_theme_pairing_bg='none' -tmux_conf_theme_pairing_attr='none' - -# prefix indicator -tmux_conf_theme_prefix='โŒจ ' # U+2328 -tmux_conf_theme_prefix_fg='none' -tmux_conf_theme_prefix_bg='none' -tmux_conf_theme_prefix_attr='none' - -# root indicator -tmux_conf_theme_root='!' -tmux_conf_theme_root_fg='none' -tmux_conf_theme_root_bg='none' -tmux_conf_theme_root_attr='bold,blink' - -# battery bar symbols -tmux_conf_battery_bar_symbol_full='โ—ผ' -tmux_conf_battery_bar_symbol_empty='โ—ป' -#tmux_conf_battery_bar_symbol_full='โ™ฅ' -#tmux_conf_battery_bar_symbol_empty='ยท' - -# battery bar length (in number of symbols), possible values are: -# - auto -# - a number, e.g. 5 -tmux_conf_battery_bar_length='auto' - -# battery bar palette, possible values are: -# - gradient (default) -# - heat -# - 'colour_full_fg,colour_empty_fg,colour_bg' -tmux_conf_battery_bar_palette='gradient' -#tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000' # red, white, black - -# battery hbar palette, possible values are: -# - gradient (default) -# - heat -# - 'colour_low,colour_half,colour_full' -tmux_conf_battery_hbar_palette='gradient' -#tmux_conf_battery_hbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green - -# battery vbar palette, possible values are: -# - gradient (default) -# - heat -# - 'colour_low,colour_half,colour_full' -tmux_conf_battery_vbar_palette='gradient' -#tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green - -# symbols used to indicate whether battery is charging or discharging -tmux_conf_battery_status_charging='โ†‘' # U+2191 -tmux_conf_battery_status_discharging='โ†“' # U+2193 -#tmux_conf_battery_status_charging='โšก ' # U+26A1 -#tmux_conf_battery_status_charging='๐Ÿ”Œ ' # U+1F50C -#tmux_conf_battery_status_discharging='๐Ÿ”‹ ' # U+1F50B - -# clock style -tmux_conf_theme_clock_colour='#00afff' # light blue -tmux_conf_theme_clock_style='24' - - # -- clipboard ----------------------------------------------------------------- # in copy mode, copying selection also copies to the OS clipboard diff --git a/.tmux.conf.theme b/.tmux.conf.theme new file mode 100644 index 0000000..ae95eaa --- /dev/null +++ b/.tmux.conf.theme @@ -0,0 +1,199 @@ +# https://github.com/gpakosz/.tmux +# (โ€‘โ—โ€‘โ—)> dual licensed under the WTFPL v2 license and the MIT license, +# without any warranty. +# Copyright 2012โ€” Gregory Pakosz (@gpakosz). + + +# -- display ------------------------------------------------------------------- + +# RGB 24-bit colour support (tmux >= 2.2), possible values are: +# - true +# - false (default) +tmux_conf_theme_24b_colour=false + +# window style +tmux_conf_theme_window_fg='default' +tmux_conf_theme_window_bg='default' + +# highlight focused pane (tmux >= 2.1), possible values are: +# - true +# - false (default) +tmux_conf_theme_highlight_focused_pane=false + +# focused pane colours: +tmux_conf_theme_focused_pane_fg='default' +tmux_conf_theme_focused_pane_bg='#0087d7' # light blue + +# pane border style, possible values are: +# - thin (default) +# - fat +tmux_conf_theme_pane_border_style=thin + +# pane borders colours: +tmux_conf_theme_pane_border='#444444' # gray +tmux_conf_theme_pane_active_border='#00afff' # light blue + +# pane indicator colours +tmux_conf_theme_pane_indicator='#00afff' # light blue +tmux_conf_theme_pane_active_indicator='#00afff' # light blue + +# status line style +tmux_conf_theme_message_fg='#000000' # black +tmux_conf_theme_message_bg='#ffff00' # yellow +tmux_conf_theme_message_attr='bold' + +# status line command style ( : Escape) +tmux_conf_theme_message_command_fg='#ffff00' # yellow +tmux_conf_theme_message_command_bg='#000000' # black +tmux_conf_theme_message_command_attr='bold' + +# window modes style +tmux_conf_theme_mode_fg='#000000' # black +tmux_conf_theme_mode_bg='#ffff00' # yellow +tmux_conf_theme_mode_attr='bold' + +# status line style +tmux_conf_theme_status_fg='#8a8a8a' # light gray +tmux_conf_theme_status_bg='#080808' # dark gray +tmux_conf_theme_status_attr='none' + +# window status style +# - built-in variables are: +# - #{circled_window_index} +tmux_conf_theme_window_status_fg='#8a8a8a' # light gray +tmux_conf_theme_window_status_bg='#080808' # dark gray +tmux_conf_theme_window_status_attr='none' +tmux_conf_theme_window_status_format='#I #W' +#tmux_conf_theme_window_status_format='#{circled_window_index} #W' +#tmux_conf_theme_window_status_format='#I #W#{?window_bell_flag,๐Ÿ””,}#{?window_zoomed_flag,๐Ÿ”,}' + +# window current status style +# - built-in variables are: +# - #{circled_window_index} +tmux_conf_theme_window_status_current_fg='#000000' # black +tmux_conf_theme_window_status_current_bg='#00afff' # light blue +tmux_conf_theme_window_status_current_attr='bold' +tmux_conf_theme_window_status_current_format='#I #W' +#tmux_conf_theme_window_status_current_format='#{circled_window_index} #W' +#tmux_conf_theme_window_status_current_format='#I #W#{?window_zoomed_flag,๐Ÿ”,}' + +# window activity status style +tmux_conf_theme_window_status_activity_fg='default' +tmux_conf_theme_window_status_activity_bg='default' +tmux_conf_theme_window_status_activity_attr='underscore' + +# window bell status style +tmux_conf_theme_window_status_bell_fg='#ffff00' # yellow +tmux_conf_theme_window_status_bell_bg='default' +tmux_conf_theme_window_status_bell_attr='blink,bold' + +# window last status style +tmux_conf_theme_window_status_last_fg='#00afff' # light blue +tmux_conf_theme_window_status_last_bg='default' +tmux_conf_theme_window_status_last_attr='none' + +# status left/right sections separators +tmux_conf_theme_left_separator_main='' +tmux_conf_theme_left_separator_sub='|' +tmux_conf_theme_right_separator_main='' +tmux_conf_theme_right_separator_sub='|' +#tmux_conf_theme_left_separator_main='๎‚ฐ' # /!\ you don't need to install Powerline +#tmux_conf_theme_left_separator_sub='๎‚ฑ' # you only need fonts patched with +#tmux_conf_theme_right_separator_main='๎‚ฒ' # Powerline symbols or the standalone +#tmux_conf_theme_right_separator_sub='๎‚ณ' # PowerlineSymbols.otf font + +# status left/right content: +# - separate main sections with '|' +# - separate subsections with ',' +# - built-in variables are: +# - #{battery_bar} +# - #{battery_hbar} +# - #{battery_percentage} +# - #{battery_status} +# - #{battery_vbar} +# - #{circled_session_name} +# - #{hostname_ssh} +# - #{hostname} +# - #{loadavg} +# - #{pairing} +# - #{prefix} +# - #{root} +# - #{uptime_d} +# - #{uptime_h} +# - #{uptime_m} +# - #{uptime_s} +# - #{username} +# - #{username_ssh} +tmux_conf_theme_status_left=' โ #S | โ†‘#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} ' +tmux_conf_theme_status_right='#{prefix}#{pairing} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} ' + +# status left style +tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4' # black, white , white +tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff' # yellow, pink, white blue +tmux_conf_theme_status_left_attr='bold,none,none' + +# status right style +tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000' # light gray, white, black +tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4' # dark gray, red, white +tmux_conf_theme_status_right_attr='none,none,bold' + +# pairing indicator +tmux_conf_theme_pairing='๐Ÿ‘“ ' # U+1F453 +tmux_conf_theme_pairing_fg='none' +tmux_conf_theme_pairing_bg='none' +tmux_conf_theme_pairing_attr='none' + +# prefix indicator +tmux_conf_theme_prefix='โŒจ ' # U+2328 +tmux_conf_theme_prefix_fg='none' +tmux_conf_theme_prefix_bg='none' +tmux_conf_theme_prefix_attr='none' + +# root indicator +tmux_conf_theme_root='!' +tmux_conf_theme_root_fg='none' +tmux_conf_theme_root_bg='none' +tmux_conf_theme_root_attr='bold,blink' + +# battery bar symbols +tmux_conf_battery_bar_symbol_full='โ—ผ' +tmux_conf_battery_bar_symbol_empty='โ—ป' +#tmux_conf_battery_bar_symbol_full='โ™ฅ' +#tmux_conf_battery_bar_symbol_empty='ยท' + +# battery bar length (in number of symbols), possible values are: +# - auto +# - a number, e.g. 5 +tmux_conf_battery_bar_length='auto' + +# battery bar palette, possible values are: +# - gradient (default) +# - heat +# - 'colour_full_fg,colour_empty_fg,colour_bg' +tmux_conf_battery_bar_palette='gradient' +#tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000' # red, white, black + +# battery hbar palette, possible values are: +# - gradient (default) +# - heat +# - 'colour_low,colour_half,colour_full' +tmux_conf_battery_hbar_palette='gradient' +#tmux_conf_battery_hbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green + +# battery vbar palette, possible values are: +# - gradient (default) +# - heat +# - 'colour_low,colour_half,colour_full' +tmux_conf_battery_vbar_palette='gradient' +#tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green + +# symbols used to indicate whether battery is charging or discharging +tmux_conf_battery_status_charging='โ†‘' # U+2191 +tmux_conf_battery_status_discharging='โ†“' # U+2193 +#tmux_conf_battery_status_charging='โšก ' # U+26A1 +#tmux_conf_battery_status_charging='๐Ÿ”Œ ' # U+1F50C +#tmux_conf_battery_status_discharging='๐Ÿ”‹ ' # U+1F50B + +# clock style +tmux_conf_theme_clock_colour='#00afff' # light blue +tmux_conf_theme_clock_style='24' diff --git a/README.md b/README.md index 9dad518..cbcae42 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,11 @@ $ cd $ git clone https://github.com/gpakosz/.tmux.git $ ln -s -f .tmux/.tmux.conf $ cp .tmux/.tmux.conf.local . +$ cp .tmux/.tmux.conf.theme . ``` -Then proceed to [customize] your `~/.tmux.conf.local` copy. +Then proceed to [customize] your `~/.tmux.conf.local` and `~/.tmux.conf.theme` +copies. [customize]: #enabling-the-powerline-look @@ -59,7 +61,7 @@ Troubleshooting This can also happen on macOS when using iTerm2 and "Use Unicode version 9 character widths" is enabled in `Preferences... > Profiles > Text` - For that reason, the default `~/.tmux.conf.local` file stopped using Unicode + For that reason, the default `~/.tmux.conf.theme` file stopped using Unicode characters for which width changed in between Unicode 8.0 and 9.0 standards, as well as Emojis. @@ -68,14 +70,14 @@ Troubleshooting First, you don't need to install Powerline. You only need fonts patched with Powerline symbols or the standalone `PowerlineSymbols.otf` font. Then make - sure your `~/.tmux.conf.local` copy uses the right code points for + sure your `~/.tmux.conf.theme` copy uses the right code points for `tmux_conf_theme_left_separator_XXX` values. - **I'm using Bash On Windows (WSL), colors and Powerline look are broken.** There is currently a [bug][1681] in the new console powering Bash On Windows preventing text attributes (bold, underscore, ...) to combine properly with - colors. The workaround is to search your `~/.tmux.conf.local` copy and + colors. The workaround is to search your `~/.tmux.conf.theme` copy and replace attributes with `'none'`. Also, until Window's console replaces its GDI based render with a DirectWrite @@ -123,8 +125,9 @@ list of key bindings: This configuration uses the following bindings: - ` C-c` creates a new session - - ` e` opens `~/.tmux.conf.local` with the editor defined by the - `$EDITOR` environment variable (defaults to `vim` when empty) + - ` e` opens both `~/.tmux.conf.local` and `~/.tmux.conf.theme` with + the editor defined by the `$EDITOR` environment variable (defaults to `vim` + when empty) - ` r` reloads the configuration - ` C-f` lets you switch to another session by name - ` C-h` and ` C-l` let you navigate windows (default @@ -195,12 +198,13 @@ Configuration While this configuration tries to bring sane default settings, you may want to customize it further to your needs. Instead of altering the `~/.tmux.conf` file and diverging from upstream, the proper way is to edit the `~/.tmux.conf.local` -file. +file and/or `~/.tmux.conf.theme`. -Please refer to the default `~/.tmux.conf.local` file to know more about -variables you can adjust to alter different behaviors. Pressing ` e` -will open `~/.tmux.conf.local` with the editor defined by the `$EDITOR` -environment variable (defaults to `vim` when empty). +Please refer to the defaults `~/.tmux.conf.local` and `~/.tmux.conf.theme` +files to know more about variables you can adjust to alter different behaviors. +Pressing ` e` will open `~/.tmux.conf.local` and `~/.tmux.conf.theme` +with the editor defined by the `$EDITOR` environment variable (defaults to +`vim` when empty). ### Enabling the Powerline look @@ -228,7 +232,7 @@ To make use of these symbols, there are several options: Please see the [Powerline manual] for further details. -Then edit the `~/.tmux.conf.local` file (` e`) and adjust the following +Then edit the `~/.tmux.conf.theme` file (` e`) and adjust the following variables: ``` @@ -242,7 +246,7 @@ tmux_conf_theme_right_separator_sub='๎‚ณ' Contrary to the first iterations of this configuration, by now you have total control on the content and order of `status-left` and `status-right`. -Edit the `~/.tmux.conf.local` file (` e`) and adjust the +Edit the `~/.tmux.conf.theme` file (` e`) and adjust the `tmux_conf_theme_status_left` and `tmux_conf_theme_status_right` variables to your own preferences.