1# : << EOF
2# Oh my tmux!
3# 💛🩷💙🖤❤️🤍
4# https://github.com/gpakosz/.tmux
5# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license,
6# without any warranty.
7# Copyright 2012— Gregory Pakosz (@gpakosz).
8
9
10# -- bindings ------------------------------------------------------------------
11
12# preserve tmux stock bindings,
13# while adding bindings that don't conflict with these stock bindings
14# /!\ this disables some of Oh my tmux! bindings described in README.md
15# - true
16# - false (default)
17tmux_conf_preserve_stock_bindings=false
18
19
20# -- session creation ----------------------------------------------------------
21
22# prompt for session name when creating a new session, possible values are:
23# - true
24# - false (default)
25# - disabled (do not modify new-session bindings)
26tmux_conf_new_session_prompt=false
27
28# new session retains current path, possible values are:
29# - true
30# - false (default)
31# - disabled (do not modify new-session bindings)
32tmux_conf_new_session_retain_current_path=false
33
34
35# -- windows & pane creation ---------------------------------------------------
36
37# new window retains current path, possible values are:
38# - true
39# - false (default)
40# - disabled (do not modify new-window bindings)
41tmux_conf_new_window_retain_current_path=false
42
43# new window tries to reconnect ssh sessions, possible values are:
44# - true
45# - false (default)
46# - disabled (do not modify new-window bindings)
47tmux_conf_new_window_reconnect_ssh=false
48
49# new pane retains current path, possible values are:
50# - true (default)
51# - false
52# - disabled (do not modify split-window bindings)
53tmux_conf_new_pane_retain_current_path=true
54
55# new pane tries to reconnect ssh sessions, possible values are:
56# - true
57# - false (default)
58# - disabled (do not modify split-window bindings)
59tmux_conf_new_pane_reconnect_ssh=false
60
61
62# -- display -------------------------------------------------------------------
63
64# RGB 24-bit colour support, possible values are:
65# - true
66# - false
67# - auto (default)
68#
69# automatic detection relies on the COLORTERM environment variable being defined
70# to 'truecolor' or '24bit' or '$ tput colors' answering '16777216'
71# see https://github.com/termstandard/colors
72tmux_conf_24b_colour=auto
73
74
75# -- theming -------------------------------------------------------------------
76
77# enable or disable theming:
78# - enabled (default)
79# - disabled
80# when disabled, all tmux_conf_theme_xxx variables are ignored except:
81# - tmux_conf_theme_pairing
82# - tmux_conf_theme_prefix
83# - tmux_conf_theme_mouse
84# - tmux_conf_theme_root
85# - tmux_conf_theme_synchronized
86tmux_conf_theme=enabled
87
88# default theme
89tmux_conf_theme_colour_1="#080808" # dark gray
90tmux_conf_theme_colour_2="#303030" # gray
91tmux_conf_theme_colour_3="#8a8a8a" # light gray
92tmux_conf_theme_colour_4="#00afff" # light blue
93tmux_conf_theme_colour_5="#ffff00" # yellow
94tmux_conf_theme_colour_6="#080808" # dark gray
95tmux_conf_theme_colour_7="#e4e4e4" # white
96tmux_conf_theme_colour_8="#080808" # dark gray
97tmux_conf_theme_colour_9="#ffff00" # yellow
98tmux_conf_theme_colour_10="#ff00af" # pink
99tmux_conf_theme_colour_11="#5fff00" # green
100tmux_conf_theme_colour_12="#8a8a8a" # light gray
101tmux_conf_theme_colour_13="#e4e4e4" # white
102tmux_conf_theme_colour_14="#080808" # dark gray
103tmux_conf_theme_colour_15="#080808" # dark gray
104tmux_conf_theme_colour_16="#d70000" # red
105tmux_conf_theme_colour_17="#e4e4e4" # white
106
107# default theme (ansi)
108#tmux_conf_theme_colour_1="colour0"
109#tmux_conf_theme_colour_2="colour8"
110#tmux_conf_theme_colour_3="colour8"
111#tmux_conf_theme_colour_4="colour14"
112#tmux_conf_theme_colour_5="colour11"
113#tmux_conf_theme_colour_6="colour0"
114#tmux_conf_theme_colour_7="colour15"
115#tmux_conf_theme_colour_8="colour0"
116#tmux_conf_theme_colour_9="colour11"
117#tmux_conf_theme_colour_10="colour13"
118#tmux_conf_theme_colour_11="colour10"
119#tmux_conf_theme_colour_12="colour8"
120#tmux_conf_theme_colour_13="colour15"
121#tmux_conf_theme_colour_14="colour0"
122#tmux_conf_theme_colour_15="colour0"
123#tmux_conf_theme_colour_16="colour1"
124#tmux_conf_theme_colour_17="colour15"
125
126# window style
127tmux_conf_theme_window_fg="default"
128tmux_conf_theme_window_bg="default"
129
130# highlight focused pane, possible values are:
131# - true
132# - false (default)
133tmux_conf_theme_highlight_focused_pane=false
134
135# focused pane colours:
136tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
137
138# pane border style, possible values are:
139# - thin (default)
140# - fat
141tmux_conf_theme_pane_border_style=thin
142
143# pane borders colours:
144tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
145tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
146%if #{>=:#{version},3.2}
147tmux_conf_theme_pane_active_border="#{?pane_in_mode,$tmux_conf_theme_colour_9,#{?synchronize-panes,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_4}}"
148%endif
149
150# pane indicator colours (when you hit <prefix> + q)
151tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
152tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
153
154# status line style
155tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1"
156tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5"
157tmux_conf_theme_message_attr="bold"
158
159# status line command style (<prefix> : Escape)
160tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5"
161tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1"
162tmux_conf_theme_message_command_attr="bold"
163
164# window modes style
165tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
166tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5"
167tmux_conf_theme_mode_attr="bold"
168
169# status line style
170tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
171tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
172tmux_conf_theme_status_attr="none"
173
174# terminal title
175# - built-in variables are:
176# - #{circled_window_index}
177# - #{circled_session_name}
178# - #{hostname}
179# - #{hostname_ssh}
180# - #{hostname_full}
181# - #{hostname_full_ssh}
182# - #{username}
183# - #{username_ssh}
184tmux_conf_theme_terminal_title="#h ❐ #S ● #I #W"
185
186# window status style
187# - built-in variables are:
188# - #{circled_window_index}
189# - #{circled_session_name}
190# - #{hostname}
191# - #{hostname_ssh}
192# - #{hostname_full}
193# - #{hostname_full_ssh}
194# - #{username}
195# - #{username_ssh}
196tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
197tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
198tmux_conf_theme_window_status_attr="none"
199tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
200#tmux_conf_theme_window_status_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
201#tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
202
203# window current status style
204# - built-in variables are:
205# - #{circled_window_index}
206# - #{circled_session_name}
207# - #{hostname}
208# - #{hostname_ssh}
209# - #{hostname_full}
210# - #{hostname_full_ssh}
211# - #{username}
212# - #{username_ssh}
213tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1"
214tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4"
215tmux_conf_theme_window_status_current_attr="bold"
216tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
217#tmux_conf_theme_window_status_current_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
218#tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}"
219
220# window activity status style
221tmux_conf_theme_window_status_activity_fg="default"
222tmux_conf_theme_window_status_activity_bg="default"
223tmux_conf_theme_window_status_activity_attr="underscore"
224
225# window bell status style
226tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5"
227tmux_conf_theme_window_status_bell_bg="default"
228tmux_conf_theme_window_status_bell_attr="blink,bold"
229
230# window last status style
231tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4"
232tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2"
233tmux_conf_theme_window_status_last_attr="none"
234
235# status left/right sections separators
236tmux_conf_theme_left_separator_main=""
237tmux_conf_theme_left_separator_sub="|"
238tmux_conf_theme_right_separator_main=""
239tmux_conf_theme_right_separator_sub="|"
240#tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
241#tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
242#tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
243#tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
244
245# status left/right content:
246# - separate main sections with "|"
247# - separate subsections with ","
248# - built-in variables are:
249# - #{battery_bar}
250# - #{battery_hbar}
251# - #{battery_percentage}
252# - #{battery_status}
253# - #{battery_vbar}
254# - #{circled_session_name}
255# - #{hostname_ssh}
256# - #{hostname}
257# - #{hostname_full}
258# - #{hostname_full_ssh}
259# - #{loadavg}
260# - #{mouse}
261# - #{pairing}
262# - #{prefix}
263# - #{root}
264# - #{synchronized}
265# - #{uptime_y}
266# - #{uptime_d} (modulo 365 when #{uptime_y} is used)
267# - #{uptime_h}
268# - #{uptime_m}
269# - #{uptime_s}
270# - #{username}
271# - #{username_ssh}
272tmux_conf_theme_status_left=" ❐ #S | #{pretty_pane_current_path} "
273#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,} | #{pretty_pane_current_path} "
274tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized} , %R , %d %b | #{username}#{root} | #{hostname} "
275
276# status left style
277tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
278tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11"
279tmux_conf_theme_status_left_attr="bold,none,none"
280
281# status right style
282tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14"
283tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17"
284tmux_conf_theme_status_right_attr="none,none,bold"
285
286# pairing indicator
287tmux_conf_theme_pairing="⚇" # U+2687
288tmux_conf_theme_pairing_fg="none"
289tmux_conf_theme_pairing_bg="none"
290tmux_conf_theme_pairing_attr="none"
291
292# prefix indicator
293tmux_conf_theme_prefix="⌨" # U+2328
294tmux_conf_theme_prefix_fg="none"
295tmux_conf_theme_prefix_bg="none"
296tmux_conf_theme_prefix_attr="none"
297
298# mouse indicator
299tmux_conf_theme_mouse="↗" # U+2197
300tmux_conf_theme_mouse_fg="none"
301tmux_conf_theme_mouse_bg="none"
302tmux_conf_theme_mouse_attr="none"
303
304# root indicator
305tmux_conf_theme_root="!"
306tmux_conf_theme_root_fg="none"
307tmux_conf_theme_root_bg="none"
308tmux_conf_theme_root_attr="bold,blink"
309
310# synchronized indicator
311tmux_conf_theme_synchronized="⚏" # U+268F
312tmux_conf_theme_synchronized_fg="none"
313tmux_conf_theme_synchronized_bg="none"
314tmux_conf_theme_synchronized_attr="none"
315
316# battery bar symbols
317tmux_conf_battery_bar_symbol_full="◼"
318tmux_conf_battery_bar_symbol_empty="◻"
319#tmux_conf_battery_bar_symbol_full="♥"
320#tmux_conf_battery_bar_symbol_empty="·"
321
322# battery bar length (in number of symbols), possible values are:
323# - auto
324# - a number, e.g. 5
325tmux_conf_battery_bar_length="auto"
326
327# battery bar palette, possible values are:
328# - gradient (default)
329# - heat
330# - "colour_full_fg,colour_empty_fg,colour_bg"
331# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
332tmux_conf_battery_bar_palette="gradient"
333#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000" # red, white, black
334#tmux_conf_battery_bar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
335
336# battery hbar palette, possible values are:
337# - gradient (default)
338# - heat
339# - "colour_low,colour_half,colour_full"
340# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
341tmux_conf_battery_hbar_palette="gradient"
342#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
343#tmux_conf_battery_hbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
344
345# battery vbar palette, possible values are:
346# - gradient (default)
347# - heat
348# - "colour_low,colour_half,colour_full"
349# - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
350tmux_conf_battery_vbar_palette="gradient"
351#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00" # red, orange, green
352#tmux_conf_battery_vbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"
353
354# symbols used to indicate whether battery is charging or discharging
355tmux_conf_battery_status_charging="↑" # U+2191
356tmux_conf_battery_status_discharging="↓" # U+2193
357#tmux_conf_battery_status_charging="🔌" # U+1F50C
358#tmux_conf_battery_status_discharging="🔋" # U+1F50B
359
360# clock style (when you hit <prefix> + t)
361# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right
362tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4"
363tmux_conf_theme_clock_style="24"
364
365
366# -- clipboard -----------------------------------------------------------------
367
368# in copy mode, copying selection also copies to the OS clipboard
369# - true
370# - false (default)
371# - disabled
372# on Linux, this requires xsel, xclip or wl-copy
373tmux_conf_copy_to_os_clipboard=false
374
375
376# -- urlscan -------------------------------------------------------------------
377
378# options passed to urlscan
379tmux_conf_urlscan_options="--compact --dedupe"
380
381
382# -- user customizations -------------------------------------------------------
383
384# this is the place to override or undo settings
385
386# increase history size
387#set -g history-limit 10000
388
389# start with mouse mode enabled
390#set -g mouse on
391
392# force Vi mode
393# really you should export VISUAL or EDITOR environment variable, see manual
394#set -g status-keys vi
395#set -g mode-keys vi
396
397# replace C-b by C-a instead of using both prefixes
398# set -gu prefix2
399# unbind C-a
400# unbind C-b
401# set -g prefix C-a
402# bind C-a send-prefix
403
404# if you don't want Oh my tmux! to alter a binding or a setting, use #!important
405# bind c new-window -c '#{pane_current_path}' #!important
406
407# move status line to top
408#set -g status-position top
409
410
411# -- tpm -----------------------------------------------------------------------
412
413# while I don't use tpm myself, many people requested official support so here
414# is a seamless integration that automatically installs plugins in parallel
415
416# whenever a plugin introduces a variable to be used in 'status-left' or
417# 'status-right', you can use it in 'tmux_conf_theme_status_left' and
418# 'tmux_conf_theme_status_right' variables.
419
420# by default, launching tmux will update tpm and all plugins
421# - true (default)
422# - false
423tmux_conf_update_plugins_on_launch=true
424
425# by default, reloading the configuration will update tpm and all plugins
426# - true (default)
427# - false
428tmux_conf_update_plugins_on_reload=true
429
430# by default, reloading the configuration will uninstall tpm and plugins when no
431# plugins are enabled
432# - true (default)
433# - false
434tmux_conf_uninstall_plugins_on_reload=true
435
436# /!\ the tpm bindings differ slightly from upstream:
437# - installing plugins: <prefix> + I
438# - uninstalling plugins: <prefix> + Alt + u
439# - updating plugins: <prefix> + u
440
441# /!\ do not add set -g @plugin 'tmux-plugins/tpm'
442# /!\ do not add run '~/.tmux/plugins/tpm/tpm'
443
444# to enable a plugin, use the 'set -g @plugin' syntax:
445# visit https://github.com/tmux-plugins for available plugins
446#set -g @plugin 'tmux-plugins/tmux-copycat'
447#set -g @plugin 'tmux-plugins/tmux-cpu'
448#set -g @plugin 'tmux-plugins/tmux-resurrect'
449#set -g @plugin 'tmux-plugins/tmux-continuum'
450#set -g @continuum-restore 'on'
451
452
453# -- custom variables ----------------------------------------------------------
454
455# to define a custom #{foo} variable, define a POSIX shell function between the
456# '# EOF' and the '# "$@"' lines. Please note that the opening brace { character
457# must be on the same line as the function name otherwise the parse won't detect
458# it.
459#
460# then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the
461# 'tmux_conf_theme_status_right' variables.
462
463# ------------------------------------------------------------------------------
464
465# # /!\ do not remove the following line
466# EOF
467#
468# # /!\ do not "uncomment" the functions: the leading "# " characters are needed
469#
470# # usage: #{weather}
471# weather() { # see https://github.com/chubin/wttr.in#one-line-output
472# curl -f -s -m 2 'wttr.in?format=3' || printf '\n' # /!\ make sure curl is installed
473# sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval
474# }
475#
476# # usage: #{online}
477# online() {
478# ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘'
479# }
480#
481# # usage: #{wan_ip_v4}
482# wan_ip_v4() {
483# curl -f -s -m 2 -4 ifconfig.me
484# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
485# }
486#
487# # usage: #{wan_ip_v6}
488# wan_ip_v6() {
489# curl -f -s -m 2 -6 ifconfig.me
490# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
491# }
492#
493# # usage: #{github_stars}, #{github_stars tmux/tmux}, ...
494# github_stars() {
495# repository=${1##*https://github.com/}
496# repository=${repository%% *}
497# repository=${repository%%.git}
498# url="https://api.github.com/repos/${repository:-gpakosz/.tmux}"
499# curl -s "$url" | perl -MJSON::PP=decode_json -CO -0777 -E '$response = decode_json(readline *STDIN); say ($response->{stargazers_count})'
500# sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
501# }
502#
503# "$@"
504# # /!\ do not remove the previous line
505# # do not write below this line