tmux/tmux/tmux.conf.local
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)
17 tmux_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)
26 tmux_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)
32 tmux_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)
41 tmux_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)
47 tmux_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)
53 tmux_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)
59 tmux_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
72 tmux_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
86 tmux_conf_theme=enabled
87
88 # default theme
89 tmux_conf_theme_colour_1="#080808" # dark gray
90 tmux_conf_theme_colour_2="#303030" # gray
91 tmux_conf_theme_colour_3="#8a8a8a" # light gray
92 tmux_conf_theme_colour_4="#00afff" # light blue
93 tmux_conf_theme_colour_5="#ffff00" # yellow
94 tmux_conf_theme_colour_6="#080808" # dark gray
95 tmux_conf_theme_colour_7="#e4e4e4" # white
96 tmux_conf_theme_colour_8="#080808" # dark gray
97 tmux_conf_theme_colour_9="#ffff00" # yellow
98 tmux_conf_theme_colour_10="#ff00af" # pink
99 tmux_conf_theme_colour_11="#5fff00" # green
100 tmux_conf_theme_colour_12="#8a8a8a" # light gray
101 tmux_conf_theme_colour_13="#e4e4e4" # white
102 tmux_conf_theme_colour_14="#080808" # dark gray
103 tmux_conf_theme_colour_15="#080808" # dark gray
104 tmux_conf_theme_colour_16="#d70000" # red
105 tmux_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
127 tmux_conf_theme_window_fg="default"
128 tmux_conf_theme_window_bg="default"
129
130 # highlight focused pane, possible values are:
131 # - true
132 # - false (default)
133 tmux_conf_theme_highlight_focused_pane=false
134
135 # focused pane colours:
136 tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
137
138 # pane border style, possible values are:
139 # - thin (default)
140 # - fat
141 tmux_conf_theme_pane_border_style=thin
142
143 # pane borders colours:
144 tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
145 tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
146 %if #{>=:#{version},3.2}
147 tmux_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)
151 tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
152 tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
153
154 # status line style
155 tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1"
156 tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5"
157 tmux_conf_theme_message_attr="bold"
158
159 # status line command style (<prefix> : Escape)
160 tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5"
161 tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1"
162 tmux_conf_theme_message_command_attr="bold"
163
164 # window modes style
165 tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
166 tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5"
167 tmux_conf_theme_mode_attr="bold"
168
169 # status line style
170 tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
171 tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
172 tmux_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}
184 tmux_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}
196 tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
197 tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
198 tmux_conf_theme_window_status_attr="none"
199 tmux_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}
213 tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1"
214 tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4"
215 tmux_conf_theme_window_status_current_attr="bold"
216 tmux_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
221 tmux_conf_theme_window_status_activity_fg="default"
222 tmux_conf_theme_window_status_activity_bg="default"
223 tmux_conf_theme_window_status_activity_attr="underscore"
224
225 # window bell status style
226 tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5"
227 tmux_conf_theme_window_status_bell_bg="default"
228 tmux_conf_theme_window_status_bell_attr="blink,bold"
229
230 # window last status style
231 tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4"
232 tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2"
233 tmux_conf_theme_window_status_last_attr="none"
234
235 # status left/right sections separators
236 tmux_conf_theme_left_separator_main=""
237 tmux_conf_theme_left_separator_sub="|"
238 tmux_conf_theme_right_separator_main=""
239 tmux_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}
272 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,} "
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} "
274 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} "
275
276 # status left style
277 tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
278 tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11"
279 tmux_conf_theme_status_left_attr="bold,none,none"
280
281 # status right style
282 tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14"
283 tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17"
284 tmux_conf_theme_status_right_attr="none,none,bold"
285
286 # pairing indicator
287 tmux_conf_theme_pairing="โ" # U+2687
288 tmux_conf_theme_pairing_fg="none"
289 tmux_conf_theme_pairing_bg="none"
290 tmux_conf_theme_pairing_attr="none"
291
292 # prefix indicator
293 tmux_conf_theme_prefix="โจ" # U+2328
294 tmux_conf_theme_prefix_fg="none"
295 tmux_conf_theme_prefix_bg="none"
296 tmux_conf_theme_prefix_attr="none"
297
298 # mouse indicator
299 tmux_conf_theme_mouse="โ" # U+2197
300 tmux_conf_theme_mouse_fg="none"
301 tmux_conf_theme_mouse_bg="none"
302 tmux_conf_theme_mouse_attr="none"
303
304 # root indicator
305 tmux_conf_theme_root="!"
306 tmux_conf_theme_root_fg="none"
307 tmux_conf_theme_root_bg="none"
308 tmux_conf_theme_root_attr="bold,blink"
309
310 # synchronized indicator
311 tmux_conf_theme_synchronized="โ" # U+268F
312 tmux_conf_theme_synchronized_fg="none"
313 tmux_conf_theme_synchronized_bg="none"
314 tmux_conf_theme_synchronized_attr="none"
315
316 # battery bar symbols
317 tmux_conf_battery_bar_symbol_full="โผ"
318 tmux_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
325 tmux_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)
332 tmux_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)
341 tmux_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)
350 tmux_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
355 tmux_conf_battery_status_charging="โ" # U+2191
356 tmux_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
362 tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4"
363 tmux_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
373 tmux_conf_copy_to_os_clipboard=false
374
375
376 # -- urlscan -------------------------------------------------------------------
377
378 # options passed to urlscan
379 tmux_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 # display a message after toggling mouse support
408 bind m run "cut -c3- '#{TMUX_CONF}' | sh -s _toggle_mouse" \; display 'mouse #{?#{mouse},on,off}'
409
410 # move status line to top
411 #set -g status-position top
412
413
414 # -- tpm -----------------------------------------------------------------------
415
416 # while I don't use tpm myself, many people requested official support so here
417 # is a seamless integration that automatically installs plugins in parallel
418
419 # whenever a plugin introduces a variable to be used in 'status-left' or
420 # 'status-right', you can use it in 'tmux_conf_theme_status_left' and
421 # 'tmux_conf_theme_status_right' variables.
422
423 # by default, launching tmux will update tpm and all plugins
424 # - true (default)
425 # - false
426 tmux_conf_update_plugins_on_launch=true
427
428 # by default, reloading the configuration will update tpm and all plugins
429 # - true (default)
430 # - false
431 tmux_conf_update_plugins_on_reload=true
432
433 # by default, reloading the configuration will uninstall tpm and plugins when no
434 # plugins are enabled
435 # - true (default)
436 # - false
437 tmux_conf_uninstall_plugins_on_reload=true
438
439 # /!\ the tpm bindings differ slightly from upstream:
440 # - installing plugins: <prefix> + I
441 # - uninstalling plugins: <prefix> + Alt + u
442 # - updating plugins: <prefix> + u
443
444 # /!\ do not add set -g @plugin 'tmux-plugins/tpm'
445 # /!\ do not add run '~/.tmux/plugins/tpm/tpm'
446
447 # to enable a plugin, use the 'set -g @plugin' syntax:
448 # visit https://github.com/tmux-plugins for available plugins
449 #set -g @plugin 'tmux-plugins/tmux-copycat'
450 #set -g @plugin 'tmux-plugins/tmux-cpu'
451 #set -g @plugin 'tmux-plugins/tmux-resurrect'
452 #set -g @plugin 'tmux-plugins/tmux-continuum'
453 #set -g @continuum-restore 'on'
454
455
456 # -- custom variables ----------------------------------------------------------
457
458 # to define a custom #{foo} variable, define a POSIX shell function between the
459 # '# EOF' and the '# "$@"' lines. Please note that the opening brace { character
460 # must be on the same line as the function name otherwise the parse won't detect
461 # it.
462 #
463 # then, use #{foo} in e.g. the 'tmux_conf_theme_status_left' or the
464 # 'tmux_conf_theme_status_right' variables.
465
466 # ------------------------------------------------------------------------------
467
468 # # /!\ do not remove the following line
469 # EOF
470 #
471 # # /!\ do not "uncomment" the functions: the leading "# " characters are needed
472 #
473 # # usage: #{weather}
474 # weather() { # see https://github.com/chubin/wttr.in#one-line-output
475 # curl -f -s -m 2 'wttr.in?format=3' || printf '\n' # /!\ make sure curl is installed
476 # sleep 900 # sleep for 15 minutes, throttle network requests whatever the value of status-interval
477 # }
478 #
479 # # usage: #{online}
480 # online() {
481 # ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf 'โ' || printf 'โ'
482 # }
483 #
484 # # usage: #{wan_ip_v4}
485 # wan_ip_v4() {
486 # curl -f -s -m 2 -4 ifconfig.me
487 # sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
488 # }
489 #
490 # # usage: #{wan_ip_v6}
491 # wan_ip_v6() {
492 # curl -f -s -m 2 -6 ifconfig.me
493 # sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
494 # }
495 #
496 # # usage: #{github_stars}, #{github_stars tmux/tmux}, ...
497 # github_stars() {
498 # repository=${1##*https://github.com/}
499 # repository=${repository%% *}
500 # repository=${repository%%.git}
501 # url="https://api.github.com/repos/${repository:-gpakosz/.tmux}"
502 # curl -s "$url" | perl -MJSON::PP=decode_json -CO -0777 -E '$response = decode_json(readline *STDIN); say ($response->{stargazers_count})'
503 # sleep 300 # sleep for 5 minutes, throttle network requests whatever the value of status-interval
504 # }
505 #
506 # "$@"
507 # # /!\ do not remove the previous line
508 # # do not write below this line