# tmux.conf
# ~ M. Thomas

# set default terminal
set -g default-terminal "tmux-256color"
# enable true color terminal
set -ga terminal-overrides ",*256col*:Tc,alacritty:Tc"

# new panes (open with current path)
bind-key -n M-v split-window -h -c "#{pane_current_path}"
bind-key -n M-s split-window -v -c "#{pane_current_path}"

# pane selection
bind-key -n M-h select-pane -L
bind-key -n M-j select-pane -D
bind-key -n M-k select-pane -U
bind-key -n M-l select-pane -R

# pane / window modifications
bind-key -n M-z resize-pane -Z
# use `set automatic-rename on` to reset
bind-key -n M-, command-prompt -p "Rename window:" "rename-window '%%'"
bind-key -n M-< set automatic-rename on

# new windows
bind-key -n M-c new-window -c "#{pane_current_path}"

# navigate windows
bind-key -n M-1 select-window -t 1
bind-key -n M-2 select-window -t 2
bind-key -n M-3 select-window -t 3
bind-key -n M-4 select-window -t 4
bind-key -n M-5 select-window -t 5
bind-key -n M-6 select-window -t 6
bind-key -n M-7 select-window -t 7
bind-key -n M-8 select-window -t 8
bind-key -n M-9 select-window -t 9

# swap panes
bind-key -n 'M-[' swap-pane -D
bind-key -n 'M-]' swap-pane -U

# move panes to and from windows
bind-key -n 'M-t' command-prompt -p "Send pane to:" "join-pane -t :'%%'"
bind-key -n 'M-#' select-layout even-horizontal
bind-key -n 'M-$' select-layout even-vertical

# resize panes
bind-key -n 'M-Left' resize-pane -L
bind-key -n 'M-Right' resize-pane -R
bind-key -n 'M-Up' resize-pane -U
bind-key -n 'M-Down' resize-pane -D

# alias
set -s command-alias[1] respawn='respawn-pane -k'

# make escape bindings of programs work in tmux
set -s escape-time 5

# enable mouse
set-option -g mouse on

# start pane index at 1
set -g base-index 1
setw -g pane-base-index 1

# styling
set -g status-position bottom

# using https://github.com/edkolev/tmuxline.vim
# open vim, `:TmuxLineSnapshot`, save to ~/.tmux.theme
if-shell "test -f ~/.tmux.theme" "source ~/.tmux.theme"
