# : << EOF
# Oh my tmux!
# 💛🩷💙🖤❤️🤍
# https://github.com/gpakosz/.tmux
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license,
#         without any warranty.
#         Copyright 2012— Gregory Pakosz (@gpakosz).


# -- bindings ------------------------------------------------------------------

# preserve tmux stock bindings,
# while adding bindings that don't conflict with these stock bindings
# /!\ this disables some of Oh my tmux! bindings described in README.md
#   - true
#   - false (default)
tmux_conf_preserve_stock_bindings=false


# -- session creation ----------------------------------------------------------

# prompt for session name when creating a new session, possible values are:
#   - true
#   - false (default)
#   - disabled (do not modify new-session bindings)
tmux_conf_new_session_prompt=false

# new session retains current path, possible values are:
#   - true
#   - false (default)
#   - disabled (do not modify new-session bindings)
tmux_conf_new_session_retain_current_path=false


# -- windows & pane creation ---------------------------------------------------

# new window retains current path, possible values are:
#   - true
#   - false (default)
#   - disabled (do not modify new-window bindings)
tmux_conf_new_window_retain_current_path=false

# new window tries to reconnect ssh sessions, possible values are:
#   - true
#   - false (default)
#   - disabled (do not modify new-window bindings)
tmux_conf_new_window_reconnect_ssh=false

# new pane retains current path, possible values are:
#   - true (default)
#   - false
#   - disabled (do not modify split-window bindings)
tmux_conf_new_pane_retain_current_path=true

# new pane tries to reconnect ssh sessions, possible values are:
#   - true
#   - false (default)
#   - disabled (do not modify split-window bindings)
tmux_conf_new_pane_reconnect_ssh=false


# -- display -------------------------------------------------------------------

# RGB 24-bit colour support, possible values are:
#   - true
#   - false
#   - auto (default)
#
# automatic detection relies on the COLORTERM environment variable being defined
# to 'truecolor' or '24bit' or '$ tput colors' answering '16777216'
# see https://github.com/termstandard/colors
tmux_conf_24b_colour=auto


# -- theming -------------------------------------------------------------------

# enable or disable theming:
#   - enabled (default)
#   - disabled
# when disabled, all tmux_conf_theme_xxx variables are ignored except:
#   - tmux_conf_theme_pairing
#   - tmux_conf_theme_prefix
#   - tmux_conf_theme_mouse
#   - tmux_conf_theme_root
#   - tmux_conf_theme_synchronized
tmux_conf_theme=enabled

# 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

# default theme (ansi)
#tmux_conf_theme_colour_1="colour0"
#tmux_conf_theme_colour_2="colour8"
#tmux_conf_theme_colour_3="colour8"
#tmux_conf_theme_colour_4="colour14"
#tmux_conf_theme_colour_5="colour11"
#tmux_conf_theme_colour_6="colour0"
#tmux_conf_theme_colour_7="colour15"
#tmux_conf_theme_colour_8="colour0"
#tmux_conf_theme_colour_9="colour11"
#tmux_conf_theme_colour_10="colour13"
#tmux_conf_theme_colour_11="colour10"
#tmux_conf_theme_colour_12="colour8"
#tmux_conf_theme_colour_13="colour15"
#tmux_conf_theme_colour_14="colour0"
#tmux_conf_theme_colour_15="colour0"
#tmux_conf_theme_colour_16="colour1"
#tmux_conf_theme_colour_17="colour15"

# window style
tmux_conf_theme_window_fg="default"
tmux_conf_theme_window_bg="default"

# highlight focused pane, 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_2"

# 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_2"
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
%if #{>=:#{version},3.2}
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}}"
%endif

# 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#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?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#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_current_format="#{circled_window_index} #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
#tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,🔔,}#{?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_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} "
#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} "

#############################
# ---- Custom Status Bar ----


# reload for testing
# set -g status-interval 1

#tmux_conf_theme_status_right=" #{prefix_highlight} #{mouse} Online: #{online_status} #{pairing}#{synchronized}#{?battery_status, | #{battery_status},}#{?battery_bar, | #{battery_bar},}#{?battery_percentage, | #{battery_percentage},} | #{kripto} | %R , %d %b #{root}#{?username_ssh, | #{username_ssh},}#{?hostname_ssh, @#{hostname_ssh},} | #{username} | #{hostname} "

# Shortcuts for readability
#btc="#f7931a"
#dark="#080808"
#light="#e4e4e4"
#red="#d70000"
#gray="#8a8a8a"
#white="#ffffff"
#green="#5fff00"
#duoblue="#1688f0"

# left
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_4,$tmux_conf_theme_colour_11,$tmux_conf_theme_colour_14"
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_1,$tmux_conf_theme_colour_0"

# right
tmux_conf_theme_status_right=" #[fg=#00afff,bg=#080808]#{prefix_highlight} #[fg=#00afff,bg=#080808]#{mouse} #[fg=#e4e4e4,bg=#080808]Online: #[fg=#5fff00,bg=#080808]#{online_status}  #[fg=#e4e4e4,bg=#080808]#(~/.tmux/scripts/tmux-vpn-status/vpn-status.sh) VPN #[fg=#f7931a,bg=#080808] #{kripto} #[fg=#ff6600]#(~/.local/bin/xmr-price.sh) #[fg=#5fff00,bg=#080808]%R #[fg=#e4e4e4,bg=#080808] %a %d %b #[fg=#e4e4e4,bg=#d70000,bold] #{?#{==:#{username},root},!, #{username}} #[fg=#e4e4e4,bg=#d70000,bold]#{?username_ssh, @ #{username_ssh},} #[fg=#080808,bg=#e4e4e4,bold] #{hostname} "

# backup - working
# tmux_conf_theme_status_right=" #[fg=#00afff,bg=#080808]#{prefix_highlight} #[fg=#00afff,bg=#080808]#{mouse} #[fg=#e4e4e4,bg=#080808]Online: #[fg=#5fff00,bg=#080808]#{online_status} #[fg=#f7931a,bg=#080808] #{kripto} #[fg=#5fff00,bg=#080808]%R #[fg=#e4e4e4,bg=#080808] %a %d %b #[fg=#e4e4e4,bg=#d70000,bold] #{?#{==:#{username},root},!, #{username}} #[fg=#e4e4e4,bg=#d70000,bold]#{?username_ssh, @ #{username_ssh},} #[fg=#080808,bg=#e4e4e4,bold] #{hostname} "
#tmux_conf_theme_status_right_attr="bold,bold,bold,bold,bold,bold,bold,bold,bold"

# tmux_conf_theme_status_right="
#[fg=#00afff,bg=#080808]#{prefix_highlight} \
#[fg=#00afff,bg=#080808]#{mouse} \
#[fg=#e4e4e4,bg=#080808]Online: \
#[fg=#5fff00,bg=#080808]#{online_status} \
#[fg=#f7931a,bg=#080808]#{kripto} \
#[fg=#e4e4e4,bg=#080808]%R \
#[fg=#e4e4e4,bg=#080808]%d %b \
#[fg=#e4e4e4,bg=#d70000]#{?#{==:#{username},root},!,#{username}} \
#[fg=#e4e4e4,bg=#d70000]#{?username_ssh, @#{username_ssh},} \
#[fg=#080808,bg=#e4e4e4]#{hostname}"


# Foreground Colors (17 segments, match total items including conditionals)
#tmux_conf_theme_status_right_fg="$c_white,$c_white,$c_white,$c_white,$c_white,$c_white,$c_white,$c_white,$c_white,$c_btc,$c_white,$c_white,$c_white,$c_white,$c_white,$c_white,$c_white"

# Background Colors (same count)
#tmux_conf_theme_status_right_bg="$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_black,$c_red,$c_white,$c_white"


# ---- End Custom Status Bar ----
################################

# 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"
#   - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_bar_palette="gradient"
#tmux_conf_battery_bar_palette="#d70000,#e4e4e4,#000000"   # red, white, black
#tmux_conf_battery_bar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"

# battery hbar palette, possible values are:
#   - gradient (default)
#   - heat
#   - "colour_low,colour_half,colour_full"
#   - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_hbar_palette="gradient"
#tmux_conf_battery_hbar_palette="#d70000,#ff5f00,#5fff00"  # red, orange, green
#tmux_conf_battery_hbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"

# battery vbar palette, possible values are:
#   - gradient (default)
#   - heat
#   - "colour_low,colour_half,colour_full"
#   - gradient(colour_fg_1,colour_fg_2,...,colour_fg_n)
tmux_conf_battery_vbar_palette="gradient"
#tmux_conf_battery_vbar_palette="#d70000,#ff5f00,#5fff00"  # red, orange, green
#tmux_conf_battery_vbar_palette="gradient(#00afff,#47a2ff,#7c91ff,#ac7afb,#d65be2,#e163df,#eb6cdd,#f475db,#ec9ff1,#eac3fe,#efe2ff,#ffffff)"

# 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)
#   - disabled
# on Linux, this requires xsel, xclip or wl-copy
tmux_conf_copy_to_os_clipboard=false


# -- urlscan -------------------------------------------------------------------

# options passed to urlscan
tmux_conf_urlscan_options="--compact --dedupe"


# -- user customizations -------------------------------------------------------

# this is the place to override or undo settings

# increase history size
#set -g history-limit 999999

# 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

# if you don't want Oh my tmux! to alter a binding or a setting, use #!important
# bind c new-window -c '#{pane_current_path}' #!important

# 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'


#############################
# ---- My Customizations ----


# -- TMUX-RECON .tmux.conf --------------------------------------------------------------------

# -- general -------------------------------------------------------------------

setw -g xterm-keys on
set -g history-limit 999999

bind-key -T prefix I refresh-client -S


# -- custom --------------------------------------------------------------------

setenv -g py3 "python3 -c 'import pty;pty.spawn(\"bin/bash\")'"
setenv -g shellexports "export TERM=xterm;stty rows $(tput lines) columns $(tput cols)"

# stabilize reverse shell
bind C-q send $py3 Enter
bind -n C-q send C-z "stty raw -echo" Enter fg Enter reset Enter $shellexports Enter

# This means you just need to hit Ctrl-aqq
# Ctrl-aq is the first binding
# Ctrl-q is the second part

# kripto
# set -g status-right "#{kripto}"

set -g @kripto_id "bitcoin"
set -g @kripto_currency_symbol " "
set -g @kripto_icon "₿ $"
set -g @kripto_ttl 150
set -g @krypto_round "true"

# === POPUPS ===
# prices (prefix + g)
bind g display-popup -E -w 45% -h 50% -T " Prices " "bash -c '~/.local/bin/prices; echo; echo \"  Press any key...\"; read -n1'"
# vitals (prefix + v)
bind v display-popup -E -w 80% -h 80% -T " Vitals " "btop"
# notes (prefix + n) - opens helix scratchpad
bind n display-popup -E -w 80% -h 80% -T " Notes " "hx ~/.claude/scratchpad/notes.md"
# docker (prefix + d)
bind d display-popup -E -w 80% -h 80% -T " Docker " "lazydocker"
# weather (prefix + w)
bind w display-popup -E -w 60% -h 70% -T " Weather " "bash -c 'curl -s wttr.in?0; echo; echo \"  Press any key...\"; read -n1'"
# agenda (prefix + a) - cal.com events
bind a display-popup -E -w 50% -h 60% -T " Agenda " "bash -c '~/.local/bin/agenda; echo; echo \"  Press any key...\"; read -n1'"
# search files (prefix + S) - fzf in current pane directory
bind S display-popup -E -w 90% -h 90% -T " Search " -d "#{pane_current_path}" "fzf --preview 'bat --color=always {} 2>/dev/null || cat {}'"
# yazi file manager (prefix + y) - in current pane directory
bind y display-popup -E -w 90% -h 90% -T " Files " -d "#{pane_current_path}" "yazi"
# clipboard yank (prefix + Y) - moved from y
bind Y run-shell -b "tmux save-buffer - | wl-copy"
# navi cheatsheet (prefix + N)
bind N display-popup -E -w 80% -h 80% -T " Navi " "navi"
# vit - VIM Interface for Taskwarrior (prefix + t)
bind t display-popup -E -w 90% -h 90% -T " Tasks " "vit"

# -- display -------------------------------------------------------------------

set -g status-interval 5      # redraw status line every 5 seconds
set -g visual-activity on

# floax

# set -g @floax-bind 'F'

# M- means "hold Meta/Alt"
# set -g @floax-bind '-n M-p'

# set -g @fzf-url-open "brave"


# -- navigation ----------------------------------------------------------------

# Use | instead of _ to split window horizontally
bind | split-window -h

# switch panes using Alt-arrow without prefix
bind -n M-left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# vim movements
unbind h
unbind j
unbind k
unbind l
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R


# -- urlview -------------------------------------------------------------------

# bind U run "cut -c3- ~/.tmux.conf | sh -s _urlview #{pane_id}"


# -- TMUX-RECON .tmux.conf.local  -------------------------------------------------------------------

# -- theming -------------------------------------------------------------------

# tmux_conf_theme_colour_18="#f7931a"   # bitcoin yellow

# -- clipboard -----------------------------------------------------------------

tmux_conf_copy_to_os_clipboard=true

# -- user customizations -------------------------------------------------------

set -g mouse on
# reload config (prefix + r) - sources main .tmux.conf which includes .local
unbind r
bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced'

# set-option -g status-position top
set-option -g status-position bottom

# -- tpm -----------------------------------------------------------------------

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'

# Configure which programs resurrect should restore
set -g @resurrect-processes 'vi vim nvim emacs man less more tail top htop irssi weechat mutt btop "~claude->claude" "~hx->hx" "~helix->helix"'

# unbind-key -T prefix 'u'
bind-key -T prefix U run-shell /home/e/.tmux/plugins/tpm/bindings/update_plugins

# -- custom plugins -----------------------------------------------------------

set -g @plugin 'tmux-plugins/tmux-online-status'
set -g @plugin 'xamut/tmux-network-bandwidth'
#set -g @plugin 'ChanderG/tmux-notify'
#set -g @tnotify-verbose 'on'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin 'vascomfnunes/tmux-kripto'

set -g @plugin '27medkamal/tmux-session-wizard'
set -g @session-wizard-windows on # default is off

# set -g @plugin 'wfxr/tmux-fzf-url'
# set -g @plugin 'omerxx/tmux-floax'

# set -g @plugin 'kenos1/tmux-cht-sh'  # disabled - using S for fzf search

set -g @plugin 'BartSte/tmux-fzf-open'
set -g @fzf-open-bind 'u'
# source-file '$HOME/.tmux/plugins/tmux-fzf-open/setup.tmux'
# bind-key -T prefix u run-shell '~/.tmux/plugins/tmux-fzf-open/setup.tmux'
set -g @fzf-open-open-cmd "brave-browser"

set -g status-right "#(~/.tmux/scripts/tmux-vpn-status/vpn-status.sh) | %H:%M %d-%b-%y"

# ---- End My Customizations ----
##################################


# -- 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
#
# # usage: #{weather}
# weather() {                                         # see https://github.com/chubin/wttr.in#one-line-output
#   curl -f -s -m 2 'wttr.in?format=3' || printf '\n' # /!\ make sure curl is installed
#   sleep 900                                         # sleep for 15 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{online}
# online() {
#   ping -c 1 1.1.1.1 >/dev/null 2>&1 && printf '✔' || printf '✘'
# }
#
# # usage: #{wan_ip_v4}
# wan_ip_v4() {
#   curl -f -s -m 2 -4 ifconfig.me
#   sleep 300                                         # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{wan_ip_v6}
# wan_ip_v6() {
#   curl -f -s -m 2 -6 ifconfig.me
#   sleep 300                                         # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# # usage: #{github_stars}, #{github_stars tmux/tmux}, ...
# github_stars() {
#   repository=${1##*https://github.com/}
#   repository=${repository%% *}
#   repository=${repository%%.git}
#   url="https://api.github.com/repos/${repository:-gpakosz/.tmux}"
#   curl -s "$url" | perl -MJSON::PP=decode_json -CO -0777 -E '$response = decode_json(readline *STDIN); say ($response->{stargazers_count})'
#   sleep 300                                         # sleep for 5 minutes, throttle network requests whatever the value of status-interval
# }
#
# "$@"
# # /!\ do not remove the previous line
# #     do not write below this line
