git.lirion.de

Of git, get, and gud

aboutsummaryrefslogtreecommitdiffstats
path: root/.tmux.conf.local
diff options
context:
space:
mode:
authorHarald Pfeiffer <coding _ lirion.de> 2022-03-19 19:27:36 +0100
committerHarald Pfeiffer <coding _ lirion.de> 2022-03-19 19:27:36 +0100
commit53b55b4b10ef6344a882402d5dcaf11d87b78d3f (patch)
treea4c8f2248fe0ef17d2c7cd98a62adfc5f0a2a7ca /.tmux.conf.local
downloaddotfiles-53b55b4b10ef6344a882402d5dcaf11d87b78d3f.tar.bz2
Initial commit
Diffstat (limited to '.tmux.conf.local')
-rw-r--r--.tmux.conf.local439
1 files changed, 439 insertions, 0 deletions
diff --git a/.tmux.conf.local b/.tmux.conf.local
new file mode 100644
index 0000000..b6b0f3d
--- /dev/null
+++ b/.tmux.conf.local
@@ -0,0 +1,439 @@
+# vim:syntax=tmux
+# Procedure:
+# 1. Disabling Gregory's vi-copy-mode and instead using tmux-yank. The latter covers all
+# specialties e.g. WSL on hosts where your employer or customer forces you to use an OS
+# not desihned for IT work
+# 2. Style borders
+# 3. Assign keys
+# 4. Better colours
+
+# -- navigation ----------------------------------------------------------------
+
+# if you're running tmux within iTerm2
+# - and tmux is 1.9 or 1.9a
+# - and iTerm2 is configured to let option key act as +Esc
+# - and iTerm2 is configured to send [1;9A -> [1;9D for option + arrow keys
+# then uncomment the following line to make Meta + arrow keys mapping work
+#set -ga terminal-overrides "*:kUP3=\e[1;9A,*:kDN3=\e[1;9B,*:kRIT3=\e[1;9C,*:kLFT3=\e[1;9D"
+
+
+# -- windows & pane creation ---------------------------------------------------
+
+# new window retains current path, possible values are:
+# - true
+# - false (default)
+tmux_conf_new_window_retain_current_path=false
+
+# new pane retains current path, possible values are:
+# - true (default)
+# - false
+tmux_conf_new_pane_retain_current_path=true
+
+# new pane tries to reconnect ssh sessions (experimental), possible values are:
+# - true
+# - false (default)
+tmux_conf_new_pane_reconnect_ssh=false
+
+# prompt for session name when creating a new session, possible values are:
+# - true
+# - false (default)
+tmux_conf_new_session_prompt=false
+
+
+# -- display -------------------------------------------------------------------
+
+# RGB 24-bit colour support (tmux >= 2.2), possible values are:
+# - true
+# - false (default)
+tmux_conf_24b_colour=false
+
+# default theme
+tmux_conf_theme_colour_1="#080808" # dark gray
+tmux_conf_theme_colour_2="#303030" # gray
+tmux_conf_theme_colour_3="#8a8a8a" # light gray
+tmux_conf_theme_colour_4="#00afff" # light blue
+tmux_conf_theme_colour_5="#ffff00" # yellow
+tmux_conf_theme_colour_6="#080808" # dark gray
+tmux_conf_theme_colour_7="#e4e4e4" # white
+tmux_conf_theme_colour_8="#080808" # dark gray
+tmux_conf_theme_colour_9="#ffff00" # yellow
+tmux_conf_theme_colour_10="#ff00af" # pink
+tmux_conf_theme_colour_11="#5fff00" # green
+tmux_conf_theme_colour_12="#8a8a8a" # light gray
+tmux_conf_theme_colour_13="#e4e4e4" # white
+tmux_conf_theme_colour_14="#080808" # dark gray
+tmux_conf_theme_colour_15="#080808" # dark gray
+tmux_conf_theme_colour_16="#d70000" # red
+tmux_conf_theme_colour_17="#e4e4e4" # white
+tmux_conf_theme_colour_18="#0087d7" # custom blue 1
+tmux_conf_theme_colour_19="#444444" # custom grey 1
+
+# 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_bg="$tmux_conf_theme_colour_18"
+
+# pane border style, possible values are:
+# - thin (default)
+# - fat
+tmux_conf_theme_pane_border_style=thin
+
+# pane borders colours:
+tmux_conf_theme_pane_border="$tmux_conf_theme_colour_19"
+tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
+
+# pane indicator colours (when you hit <prefix> + q)
+tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
+tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
+
+# status line style
+tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1"
+tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5"
+tmux_conf_theme_message_attr="bold"
+
+# status line command style (<prefix> : Escape)
+tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5"
+tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1"
+tmux_conf_theme_message_command_attr="bold"
+
+# window modes style
+tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
+tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5"
+tmux_conf_theme_mode_attr="bold"
+
+# status line style
+tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
+tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
+tmux_conf_theme_status_attr="none"
+
+# terminal title
+# - built-in variables are:
+# - #{circled_window_index}
+# - #{circled_session_name}
+# - #{hostname}
+# - #{hostname_ssh}
+# - #{hostname_full}
+# - #{hostname_full_ssh}
+# - #{username}
+# - #{username_ssh}
+tmux_conf_theme_terminal_title="#h โ #S โ— #I #W"
+
+# window status style
+# - built-in variables are:
+# - #{circled_window_index}
+# - #{circled_session_name}
+# - #{hostname}
+# - #{hostname_ssh}
+# - #{hostname_full}
+# - #{hostname_full_ssh}
+# - #{username}
+# - #{username_ssh}
+tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
+tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
+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}
+# - #{circled_session_name}
+# - #{hostname}
+# - #{hostname_ssh}
+# - #{hostname_full}
+# - #{hostname_full_ssh}
+# - #{username}
+# - #{username_ssh}
+tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1"
+tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4"
+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="$tmux_conf_theme_colour_5"
+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="$tmux_conf_theme_colour_4"
+tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2"
+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='\uE0B0' # /!\ you don't need to install Powerline
+#tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
+#tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
+#tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
+
+# 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}
+# - #{hostname_full}
+# - #{hostname_full_ssh}
+# - #{loadavg}
+# - #{mouse}
+# - #{pairing}
+# - #{prefix}
+# - #{root}
+# - #{synchronized}
+# - #{uptime_y}
+# - #{uptime_d} (modulo 365 when #{uptime_y} is used)
+# - #{uptime_h}
+# - #{uptime_m}
+# - #{uptime_s}
+# - #{username}
+# - #{username_ssh}
+tmux_conf_theme_status_left=" โ #S | โ†‘#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} "
+tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized}#{?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="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
+tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11"
+tmux_conf_theme_status_left_attr="bold,none,none"
+
+# status right style
+tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14"
+tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17"
+tmux_conf_theme_status_right_attr="none,none,bold"
+
+# pairing indicator
+tmux_conf_theme_pairing="โš‡" # U+2687
+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"
+
+# mouse indicator
+tmux_conf_theme_mouse="โ†—" # U+2197
+tmux_conf_theme_mouse_fg="none"
+tmux_conf_theme_mouse_bg="none"
+tmux_conf_theme_mouse_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"
+
+# synchronized indicator
+tmux_conf_theme_synchronized="โš" # U+268F
+tmux_conf_theme_synchronized_fg="none"
+tmux_conf_theme_synchronized_bg="none"
+tmux_conf_theme_synchronized_attr="none"
+
+# 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+1F50C
+#tmux_conf_battery_status_discharging="๐Ÿ”‹" # U+1F50B
+
+# clock style (when you hit <prefix> + t)
+# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right
+tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4"
+tmux_conf_theme_clock_style="24"
+
+
+# -- clipboard -----------------------------------------------------------------
+
+# in copy mode, copying selection also copies to the OS clipboard
+# - true
+# - false (default)
+# on macOS, this requires installing reattach-to-user-namespace, see README.md
+# on Linux, this requires xsel or xclip
+tmux_conf_copy_to_os_clipboard=false
+
+
+# -- user customizations -------------------------------------------------------
+# this is the place to override or undo settings
+
+# increase history size
+#set -g history-limit 10000
+
+# start with mouse mode enabled
+#set -g mouse on
+
+# force Vi mode
+# really you should export VISUAL or EDITOR environment variable, see manual
+#set -g status-keys vi
+#set -g mode-keys vi
+
+# replace C-b by C-a instead of using both prefixes
+# set -gu prefix2
+# unbind C-a
+# unbind C-b
+# set -g prefix C-a
+# bind C-a send-prefix
+
+# move status line to top
+#set -g status-position top
+
+
+# -- tpm -----------------------------------------------------------------------
+
+# while I don't use tpm myself, many people requested official support so here
+# is a seamless integration that automatically installs plugins in parallel
+
+# whenever a plugin introduces a variable to be used in 'status-left' or
+# 'status-right', you can use it in 'tmux_conf_theme_status_left' and
+# 'tmux_conf_theme_status_right' variables.
+
+# by default, launching tmux will update tpm and all plugins
+# - true (default)
+# - false
+tmux_conf_update_plugins_on_launch=true
+
+# by default, reloading the configuration will update tpm and all plugins
+# - true (default)
+# - false
+tmux_conf_update_plugins_on_reload=true
+
+# by default, reloading the configuration will uninstall tpm and plugins when no
+# plugins are enabled
+# - true (default)
+# - false
+tmux_conf_uninstall_plugins_on_reload=true
+
+# /!\ the tpm bindings differ slightly from upstream:
+# - installing plugins: <prefix> + I
+# - uninstalling plugins: <prefix> + Alt + u
+# - updating plugins: <prefix> + u
+
+# /!\ do not add set -g @plugin 'tmux-plugins/tpm'
+# /!\ do not add run '~/.tmux/plugins/tpm/tpm'
+
+# to enable a plugin, use the 'set -g @plugin' syntax:
+# visit https://github.com/tmux-plugins for available plugins
+#set -g @plugin 'tmux-plugins/tmux-copycat'
+#set -g @plugin 'tmux-plugins/tmux-cpu'
+#set -g @plugin 'tmux-plugins/tmux-resurrect'
+#set -g @plugin 'tmux-plugins/tmux-continuum'
+#set -g @continuum-restore 'on'
+
+set -g status-left ' #[fg=#e0e0e0,bold,bg=#ff883e]โ–ก #S '
+set -g status-right '#{?window_zoomed_flag,@,}# #{?client_prefix,#[bg=#c00000] โŒจ ,}#[fg=#a0a0a0,bg=#404040,bold] โ†‘ #(uptime-hms) #[fg=#808080,bg=#202020,bold] %Y-%m-%d #[fg=#a0a0a0,bg=#404040,bold] %H:%M:%S '
+bind -n M-left previous-window
+bind -n M-right next-window
+bind-key -n S-Left swap-window -t -1
+bind-key -n S-Right swap-window -t +1
+bind -n S-Left display-panes \; select-pane -L
+bind -n S-Right display-panes \; select-pane -R
+bind-key -n S-Up display-panes \; select-pane -U
+bind-key -n S-Down display-panes \; select-pane -D
+bind _ split-window -h
+bind | split-window -v
+tmux_pane_active_border_fg='colour45'
+tmux_pane_active_border_bg=default
+tmux_display_panes_colour='colour45'
+set-option -g display-panes-active-colour colour45
+set-option -g display-panes-colour colour8
+set-option -g display-panes-time 500
+set-option -g display-time 1500
+set-option -g clock-mode-colour '#169b62'
+set-option -g allow-rename off
+tmux_conf_window_status_current_fg='#e0e0e0'
+tmux_conf_window_status_current_bg='#169b62'
+tmux_conf_window_status_current_attr='bold'
+#setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F '
+setw -g window-status-current-format ' #[fg=#ff883e]#I#[fg=#e0e0e0]:#[fg=#e0e0e0]#W#[fg=#ff883e]#F '
+bind r source-file ~/.tmux.conf \; source-file ~/.tmux.conf.local \; display-message "$HOME/.tmux.conf reloaded!"
+bind-key -n C-S-Down resize-pane -D
+bind-key -n C-S-Up resize-pane -U
+bind-key -n C-S-Left resize-pane -L
+bind-key -n C-S-Right resize-pane -R
+set -g pane-active-border-fg colour45
+set -g pane-active-border-bg default
+set-option -g display-panes-active-colour colour45
+set-option -g display-panes-colour colour8
+run-shell ~/tmux-yank/yank.tmux
+
+# -- custom variables ----------------------------------------------------------
+
+# to define a custom #{foo} variable, define a POSIX shell function between the
+# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character
+# must be on the same line as the function name otherwise the parse won't detect
+# it.
+#
+# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the
+# 'tmux_conf_theme_status_right' variables.
+
+# # /!\ do not remove the following line
+# EOF
+#
+# # /!\ do not "uncomment" the functions: the leading "# " characters are needed
+#
+# weather() {
+# curl -m 1 wttr.in?format=3 2>/dev/null
+# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval
+# }
+#
+# online() {
+# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf 'โœ”' || printf 'โœ˜'
+# }
+#
+# "$@"
+# # /!\ do not remove the previous line