# Remap <C-b> to <C-t>.
unbind-key C-b
set-option -g prefix C-t
bind-key C-t send-prefix

# Disable escape delay.
set -sg escape-time 0

# Reload config.
bind -n M-r source-file /etc/tmux.conf

# Scroll.
bind -n M-p copy-mode -u
bind -n M-n send-keys Pagedown

# Copy mode.
setw -g mode-keys vi
bind -n M-v copy-mode
bind -n M-P choose-buffer
bind -T copy-mode-vi v send      -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"

# Selection style.
set -g mode-style 'fg=color236,bg=color184 bold'

# Update environment from client.
set-option -g update-environment "SSH_CLIENT SSH_TTY DOCKER_CONFIG DOCKER_HOST DISPLAY XAUTHORITY"

# Remap split keys.
bind -n M-\\ split-window -h -c "#{pane_current_path}"
bind -n M--  split-window -v -c "#{pane_current_path}"
bind -n M-= select-layout tiled
bind -n M-W resize-pane -U 1
bind -n M-S resize-pane -D 1
bind -n M-A resize-pane -L 1
bind -n M-D resize-pane -R 1
unbind '"'
unbind %

# Swith panes with alt + hjkl.
bind -n M-a select-pane -L
bind -n M-d select-pane -R
bind -n M-w select-pane -U
bind -n M-s select-pane -D

# Close pane.
bind -n M-c kill-pane
bind -n M-C kill-pane -a

# Detach.
bind -n M-z detach-client
bind -n M-Z detach-client -a

# Switch sessions.
bind -n M-9 switch-client -p
bind -n M-0 switch-client -n
bind -n M-g choose-session

# Resize to smallest client.
set -g window-size smallest

# Statusbar.
set -g status-interval 2
set -g status-position bottom
set -g status-justify  left
set -g status-style 'bg=color236 fg=color230'

set -g status-left ' #[bold]#H-#S #(count=$(tmux list-clients -t #S | wc -l); [ ${count} -gt 1 ] && echo "(${count}) ")'
set -g status-left-length 50
set -g status-right ' #(head -c -1 /sys/class/power_supply/BAT*/capacity 2> /dev/null && echo -n "% ")#[fg=color144,bg=color236] %Y-%m-%d #[bg=color144,fg=color236,bold] %H:%M '
set -g status-right-length 50

setw -g window-status-current-style  'fg=color236 bg=color184 bold'
setw -g window-status-current-format ' #[fg=color236]#W#[fg=color236]#F '

setw -g window-status-style  'fg=color236 bg=color144'
setw -g window-status-format ' #[fg=color236]#W#[fg=color236] '

setw -g window-status-bell-style 'fg=color236 bg=color144 bold'

# Create new window.
bind -n M-Escape new-window -c "#{pane_current_path}"
bind -n M-t      new-window -c "#{pane_current_path}" # NOTE: for compatibility reasons.

# Close window.
bind -n M-x kill-window
bind -n M-X kill-window -a

# Switch window.
bind -n M-e next-window
bind -n M-q previous-window

# Move window.
bind -n M-E swap-window -t +1\; select-window -t +1
bind -n M-Q swap-window -t -1\; select-window -t -1