# Enable utf-8 set -g utf8 on set -g status-utf8 on # Use vim keybindings in copy mode set -g mode-keys vi # Change prefix to C-Space unbind C-b set -g prefix C-Space bind Space send-prefix # Address vim mode switching delay set -s escape-time 0 # Increase scrollback buffer size set -g history-limit 50000 # Set tmux messages display time to 4 seconds set -g display-time 4000 # Refresh 'status-left' and 'status-right' more often set -g status-interval 5 # Upgrade $TERM set -g default-terminal "screen-256color" # Focus events enabled for terminals that support them set -g focus-events on # TODO: Change this comment to something that explains the setting # super useful when using "grouped sessions" and multi-monitor setup setw -g aggressive-resize on # Start window & pane index at 1 set -g pane-base-index 1 # Enable mouse support set-option -g mouse on # Enable cursor shape per pane in VTE compatible terminals if -b '[ "`uname`" != "Darwin" ]' \ "set -ga terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q'" # Set only on OS X where it's required if -b '[ "`uname`" = "Darwin" ]' \ "set -g default-command 'reattach-to-user-namespace -l $SHELL'" # Make new splits open in current directory bind "\"" split-window -c "#{pane_current_path}" bind "%" split-window -h -c "#{pane_current_path}" # Integrate pane selection with vim is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" # Integrate urlview bind-key u capture-pane \; split-window "tmux show-buffer | urlview -" # Enter copy mode with C-U bind-key C-u copy-mode -u # Left status style set-window-option -g status-left " #S" set-window-option -g status-left-fg colour240 set-window-option -g status-left-bg colour233 # Centre status style set-window-option -g status-fg colour240 set-window-option -g status-bg colour233 # Right status style set-window-option -g status-right "%a %d-%m-%y %H:%M " set-window-option -g status-right-fg white set-window-option -g status-right-bg colour233 # Active window status style set-window-option -g window-status-current-format " #I: #W" set-window-option -g window-status-current-fg white set-window-option -g window-status-current-bg colour233 # Inactive window status style set-window-option -g window-status-format " #I: #W" set-window-option -g window-status-fg colour240 set-window-option -g window-status-bg colour233 # Active pane border set-option -g pane-active-border-fg colour235 set-option -g pane-active-border-bg colour235 # Inactive pane border set-option -g pane-border-fg colour233 set-option -g pane-border-bg colour233 # Command line window list selection set-window-option -g mode-style fg=colour233,bg=colour30 set-option -g message-style fg=colour233,bg=colour30