# Common tmux.conf file for NNTmux

# By default NNTmux uses C-a as the control prefix
set-option -g prefix C-a
bind-key C-a last-window

# Set copy mode to use VI keys - Activates PgUp/PgDn buttons
setw -g mode-keys vi

# Allows for faster key repetition
set -s escape-time 0

#set 256 color display
#set -g default-terminal "screen-256color"
set -g default-terminal "xterm-256color"

# Set status bar
set -g status-bg black
set -g status-fg white
set -g status-left ""
#set -g status-right "#[fg=green]#H"

# Rather than constraining window size to the maximum size of any client
# connected to the *session*, constrain window size to the maximum size of any
# client connected to *that window*. Much more reasonable.
setw -g aggressive-resize on

# Activity monitoring
setw -g monitor-activity on
#set -g visual-activity on

# # Refresh the status bar every 5 seconds.
set -g status-interval 5 # default = 15 seconds

# Right status bar
set -g status-right "#[fg=yellow]#(free -h | grep 'Mem' | awk '{ print \"RAM Used: \"$3\", Cached: \"$6\", \";}')#(free -m | grep 'Swap' | awk '{ print \"Swapped: \"$3;}')M #[fg=cyan,bold] #(uptime | cut -d ',' -f 4-)"

# Highlight active window
set-window-option -g window-status-current-bg red

# Scrollback line buffer per pane
set -g history-limit 3000   # reduce for memory limited systems (say <=8Gb)

# Keep pane open after process ends - monitor.php requires this for re-spawns (the only config param nZEDB really needs)
set -g remain-on-exit on

# Enable mouse support
set -g mouse on

# Rename pane
bind t command-prompt -p "(rename-pane)" -I "#T" "select-pane -T '%%'"

##################################################################################################
### DESIGN CHANGES source: https://www.hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/###
##################################################################################################

# loud or quiet?
set-option -g visual-activity off
set-option -g visual-bell off
set-option -g visual-silence off
set-window-option -g monitor-activity off
set-option -g bell-action none

#  modes
setw -g clock-mode-colour colour5
setw -g mode-attr bold
setw -g mode-fg colour1
setw -g mode-bg colour18

# panes
set -g pane-border-bg colour0
set -g pane-border-fg colour19
set -g pane-active-border-bg colour0
set -g pane-active-border-fg colour9

# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-bg colour18
set -g status-fg colour137
set -g status-attr dim
set -g status-left ''
set -g status-right "#[fg=yellow]#(free -h | grep 'Mem' | awk '{ print \"RAM Used: \"$3\", Cached: \"$6\", \";}')#(free -m | grep 'Swap' | awk '{ print \"Swapped: \"$3;}')M #[fg=cyan,bold] #(uptime | cut -d ',' -f 4-)"
set -g status-right-length 200
set -g status-left-length 10

setw -g window-status-current-fg colour1
setw -g window-status-current-bg colour19
setw -g window-status-current-attr bold
setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F '

setw -g window-status-fg colour9
setw -g window-status-bg colour18
setw -g window-status-attr none
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '

setw -g window-status-bell-attr bold
setw -g window-status-bell-fg colour255
setw -g window-status-bell-bg colour1

# messages
set -g message-attr bold
set -g message-fg colour232
set -g message-bg colour16

# Add powerline to tmux
source '/usr/share/powerline/bindings/tmux/powerline.conf'
