# vim: filetype=tmux
#
# More settings are in common.nix
#
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

set -g xterm-keys on

setw -g mouse on
setw -g monitor-activity on

## Panes

# Split panes
bind-key | split-window -h
bind-key - split-window -v

# Send/join panes
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Use Alt-vim capitalized keys without prefix key to resize panes
bind -n M-H resize-pane -L
bind -n M-J resize-pane -D
bind -n M-K resize-pane -U
bind -n M-L resize-pane -R

# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

# Set current window pane to 80 columns
bind-key E resize-pane -x 80

# cycle pane layout
bind-key N next-layout
bind-key P previous-layout

# Toggle synchronizing panes
bind-key y setw synchronize-panes

## Text manipulation

# vim-like copy/paste
setw -g mode-keys vi

bind [ copy-mode
bind ] paste-buffer

# copy/paste with xclip
bind-key -Tcopy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -sel clip -i'

# select buffer to paste from
bind Space choose-buffer

## Meta

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

# status line text
set -g status-left-length 30
set -g status-left ' #(whoami)@#(hostname) | '
set -g status-right '~%Y.%m.%d..%H.%M  '

# white-ish background with dark-grey text
set -g status-style bg=colour0
set -ag status-style fg=colour13