107 lines
3.2 KiB
Plaintext
107 lines
3.2 KiB
Plaintext
# use UTF8
|
|
# set -g utf8
|
|
# set-window-option -g utf8 on
|
|
|
|
# 256 color mode
|
|
set -g default-terminal "screen-256color"
|
|
# set-option -sa terminal-overrides ',screen*:RGB'
|
|
# set-option -ga terminal-overrides ',screen*:Tc'
|
|
# set-option -sa terminal-overrides ',xterm*:RGB'
|
|
# set-option -ga terminal-overrides ',xterm*:Tc'
|
|
# set-option -sa terminal-overrides ',tmux*:RGB'
|
|
# set-option -ga terminal-overrides ',tmux*:Tc'
|
|
# set-option -sa terminal-overrides ',rxvt*:RGB'
|
|
# set-option -ga terminal-overrides ',rxvt*:Tc'
|
|
|
|
# Properly handle ssh agent forwarding when reconnecting to session
|
|
# set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
|
|
|
|
set-option -g set-titles on
|
|
# Tmux attach will create a new session if one doesn't exist
|
|
# new-session -n $HOST
|
|
|
|
# set scrollback history
|
|
set -g history-limit 10000
|
|
|
|
# set Ctrl-a as prefix and unbind Ctrl-b
|
|
set -g prefix C-a
|
|
unbind C-b
|
|
|
|
# last active window
|
|
# bind-key C-a last-window
|
|
bind Tab last-window
|
|
|
|
# pass prefix through to application
|
|
bind C-a send-prefix
|
|
|
|
# don't constrain size unless smaller client looking at window
|
|
setw -g aggressive-resize on
|
|
|
|
# set command delay
|
|
set -sg escape-time 1
|
|
|
|
# set base index to 1 rather than 0
|
|
set-option -g base-index 1
|
|
setw -g pane-base-index 1
|
|
|
|
# use PREFIX-r to reload config
|
|
bind r source-file ~/.tmux/tmux_shared.conf \; display "Reloaded config"
|
|
|
|
# PREFIX T makes current window index 1
|
|
bind T swap-window -t 1
|
|
|
|
# use vim movement for panes
|
|
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
|
|
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"
|
|
|
|
# bind C-h and C-l to cycle through panes
|
|
bind -r C-h select-window -t :-
|
|
bind -r C-l select-window -t :+
|
|
|
|
# Synchonize keyboard input across panes
|
|
bind a setw synchronize-panes
|
|
|
|
# open calendar
|
|
bind-key C run-shell "cal $(date +%Y)"
|
|
|
|
# Make sure the client is always using the correct environment
|
|
# eval $(tmux switch-client \; show-environment -s)
|
|
|
|
bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '
|
|
bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '1
|
|
|
|
# ----------------------
|
|
# set some pretty colors
|
|
# ----------------------
|
|
# set pane colors - hilight the active pane
|
|
# set-option -g pane-border-fg colour235 #base02
|
|
# set-option -g pane-active-border-fg colour240 #base01
|
|
|
|
# Show active pane
|
|
# set-window-option -g window-style 'bg=#181818'
|
|
# set-window-option -g window-active-style 'bg=black'
|
|
# set-window-option -g pane-active-border-style ''
|
|
# set-window-option -g pane-active-border-style 'fg=#181818'
|
|
|
|
# colorize messages in the command line
|
|
# set-option -g message-bg black #base02
|
|
# set-option -g message-fg brightred #orange
|
|
|
|
# Powerline
|
|
run-shell "powerline-daemon -q"
|
|
run-shell "powerline-config tmux setup"
|
|
# source-file $POWERLINE_ROOT/bindings/tmux/powerline.conf
|
|
|
|
# Local overrides
|
|
if-shell "[ -f ~/.tmux_local.conf ]" 'source ~/.tmux_local.conf'
|