|
|
|
set-option -g default-terminal "screen-256color"
|
|
|
|
|
|
|
|
## messages
|
|
|
|
set-option -g display-time 3000
|
|
|
|
|
|
|
|
## scrollback buffer
|
|
|
|
set-option -g history-limit 10000
|
|
|
|
|
|
|
|
## unicode
|
|
|
|
set-option -g status-utf8 on
|
|
|
|
set-window-option -g utf8 on
|
|
|
|
|
|
|
|
## status bar
|
|
|
|
# set-option -g status-bg black
|
|
|
|
# set-option -g status-fg white
|
|
|
|
# set-option -g status-right ""
|
|
|
|
# set-option -g status-left "#S"
|
|
|
|
# set-window-option -g window-status-current-attr reverse
|
|
|
|
# set-window-option -g window-status-current-bg white
|
|
|
|
# set-window-option -g window-status-current-bg black
|
|
|
|
|
|
|
|
## window notifications
|
|
|
|
set-option -g visual-activity on
|
|
|
|
set-option -g visual-content on
|
|
|
|
set-window-option -g monitor-activity off
|
|
|
|
|
|
|
|
## title
|
|
|
|
set-option -g set-titles on
|
|
|
|
set-option -g set-titles-string "[#S] #I:#W"
|
|
|
|
set-option -g automatic-rename on
|
|
|
|
|
|
|
|
## mouse
|
|
|
|
set-window-option -g mode-mouse off
|
|
|
|
# set-window-option -g mode-mouse on
|
|
|
|
# set-option -g mouse-select-pane on
|
|
|
|
# set-option -g mouse-resize-pane on
|
|
|
|
# set-option -g mouse-select-window on
|
|
|
|
|
|
|
|
# copy and paste
|
|
|
|
bind -t vi-copy 'v' begin-selection
|
|
|
|
bind -t vi-copy 'y' copy-selection
|
|
|
|
|
|
|
|
## etc
|
|
|
|
set-window-option -g mode-keys vi
|
|
|
|
set-option -sg escape-time 1 # increase vim responsiveness
|
|
|
|
# set-option -g status-justify centre
|
|
|
|
set-option -g base-index 1
|
|
|
|
|
|
|
|
## screen bindings
|
|
|
|
|
|
|
|
# use C-a as the prefix (a la screen)
|
|
|
|
# unbind C-b
|
|
|
|
# set-option -g prefix C-a
|
|
|
|
|
|
|
|
bind a send-prefix
|
|
|
|
|
|
|
|
bind c new-window
|
|
|
|
bind C-c new-window
|
|
|
|
|
|
|
|
bind d detach
|
|
|
|
bind C-d detach
|
|
|
|
|
|
|
|
bind n next-window
|
|
|
|
bind C-n next-window
|
|
|
|
|
|
|
|
bind p previous-window
|
|
|
|
bind C-p previous-window
|
|
|
|
|
|
|
|
bind C-a last-window
|
|
|
|
|
|
|
|
bind v split-window -h
|
|
|
|
bind s split-window -v
|
|
|
|
|
|
|
|
# bind h select-pane -L
|
|
|
|
# bind j select-pane -D
|
|
|
|
# bind k select-pane -U
|
|
|
|
# bind l select-pane -R
|
|
|
|
|
|
|
|
# Smart pane switching with awareness of vim splits
|
|
|
|
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"
|
|
|
|
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
|
|
|
|
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"
|
|
|
|
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"
|
|
|
|
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
|
|
|
|
bind C-l send-keys 'C-l'
|
|
|
|
|
|
|
|
bind -r < resize-pane -L 3
|
|
|
|
bind -r > resize-pane -R 3
|
|
|
|
bind -r - resize-pane -D 3
|
|
|
|
bind -r + resize-pane -U 3
|
|
|
|
bind -r = resize-pane -U 3
|
|
|
|
|
|
|
|
if-shell "[[ `tmux -V` =~ '1.9' ]]" \
|
|
|
|
"set-option -g renumber-windows on; \
|
|
|
|
bind c new-window -c '#{pane_current_path}'; \
|
|
|
|
bind C-c new-window -c '#{pane_current_path}'; \
|
|
|
|
bind v split-window -h -c '#{pane_current_path}'; \
|
|
|
|
bind s split-window -v -c '#{pane_current_path}';"
|
|
|
|
|
|
|
|
unbind r
|
|
|
|
bind r source-file ~/.tmux.conf \; display 'Reloaded tmux.conf'
|
|
|
|
|
|
|
|
source-file ~/.dotfiles/src/powerline/powerline/bindings/tmux/powerline.conf
|
|
|
|
|
|
|
|
if-shell "[[ -e ~/.tmux.conf.local ]]" "source-file ~/.tmux.conf.local"
|