# Base settings
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on
set -g status-position top
set -g status-style "bg=default"
set -g status-justify absolute-centre
set -g status-left "#S"
set -g status-right ""
set -g window-status-format "#I:#W"  # Index and Name
set -g window-status-current-format "#I:#W"  # Current window
set -g window-status-current-style "fg=green bg=default bold"

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'christoomey/vim-tmux-navigator'

# Shift Alt vim keys to switch windows
bind -n M-P previous-window
bind -n M-N next-window

# Set escape timeout to prevent esc lag
set -s escape-time 0

# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on

# set vi-mode
set-window-option -g mode-keys vi

# Custom bindings

# Base config
bind r source-file ~/.tmux.conf

# Open panes in the same directory
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

# Keybindings for VI mode
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
# bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind-key -T copy-mode-vi y send-keys -X copy-selection

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

# Keymaps for resize-pane
bind-key -r -T prefix       C-Up              resize-pane -U 10
bind-key -r -T prefix       C-Down            resize-pane -D 10
bind-key -r -T prefix       C-Left            resize-pane -L 10
bind-key -r -T prefix       C-Right           resize-pane -R 10

# Custom binding table
bind-key o switch-client -T my_table

# Bind keys within that table
bind-key -T my_table o switch-client -t Personal:3
bind-key -T my_table i switch-client -t Backend:1
bind-key -T my_table c switch-client -t Backend:3
# bind-key -T my_table p switch-client -t Other:1
# Bindings for switching session up and down
bind-key -T my_table p switch-client -p
bind-key -T my_table n switch-client -n
