Last active
September 13, 2016 13:50
-
-
Save lukebeer/87230a3c3d1ccb0ce6c4 to your computer and use it in GitHub Desktop.
.tmux.conf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set -g history-limit 500000 | |
set -g mouse on | |
set-option -g status-attr default | |
bind-key v split-window -h | |
bind-key b split-window | |
#set-window-option -g window-status-attr dim | |
bind-key s set-window-option synchronize-panes | |
# clock | |
set-window-option -g clock-mode-colour green #green | |
set -g status-interval 1 | |
set -g status-justify centre # center align window list | |
set -g status-left-length 60 | |
set -g status-right-length 140 | |
set -g status-left '#[fg=green,bright]8.8.8.8 #[fg=blue]#(ping -c 1 8.8.8.8 | grep -Po "\d[^ ]+ ms" | head -n 1) #[default]' | |
set -g status-right '#[fg=green,bg=default,bright]#(tmux-mem-cpu-load) #[fg=red,dim,bg=default]#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") #[fg=white,bg=default]%a%l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d #[fg=green]#H' | |
# C-b is not acceptable -- Vim uses it | |
set-option -g prefix C-a | |
bind-key C-a last-window | |
# Start numbering at 1 | |
set -g base-index 1 | |
# Allows for faster key repetition | |
set -s escape-time 0 | |
# 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 | |
# Allows us to use C-a a <command> to send commands to a TMUX session inside | |
# another TMUX session | |
bind-key a send-prefix | |
# Activity monitoring | |
setw -g monitor-activity on | |
set -g visual-activity on | |
# Vi copypaste mode | |
set-window-option -g mode-keys vi | |
bind-key -t vi-copy 'v' begin-selection | |
bind-key -t vi-copy 'y' copy-selection | |
# hjkl pane traversal | |
bind h select-pane -L | |
bind j select-pane -D | |
bind k select-pane -U | |
bind l select-pane -R | |
# set to main-horizontal, 60% height for main pane | |
bind m set-window-option main-pane-height 60\; select-layout main-horizontal | |
bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'" | |
# reload config | |
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
# auto window rename | |
set-window-option -g automatic-rename | |
# color | |
set -g default-terminal "screen-256color" | |
# status bar | |
# https://github.com/edkolev/dots/blob/master/tmux.conf | |
# Updates for tmux 1.9's current pane splitting paths. | |
# from powerline | |
run-shell "tmux set-environment -g TMUX_VERSION_MAJOR $(tmux -V | cut -d' ' -f2 | cut -d'.' -f1 | sed 's/[^0-9]*//g')" | |
run-shell "tmux set-environment -g TMUX_VERSION_MINOR $(tmux -V | cut -d' ' -f2 | cut -d'.' -f2 | sed 's/[^0-9]*//g')" | |
# rm mouse mode fail | |
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 1\) -o #{$TMUX_VERSION_MAJOR} -gt 2' 'set -g mouse on' | |
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 1\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set -g mode-mouse on' | |
# fix pane_current_path on new window and splits | |
if-shell "#{$TMUX_VERSION_MAJOR} -gt 1 -o \( #{$TMUX_VERSION_MAJOR} -eq 1 -a #{$TMUX_VERSION_MINOR} -ge 8 \)" 'unbind c; bind c new-window -c "#{pane_current_path}"' | |
if-shell "#{$TMUX_VERSION_MAJOR} -gt 1 -o \( #{$TMUX_VERSION_MAJOR} -eq 1 -a #{$TMUX_VERSION_MINOR} -ge 8 \)" "unbind '\"'; bind '\"' split-window -v -c '#{pane_current_path}'" | |
if-shell "#{$TMUX_VERSION_MAJOR} -gt 1 -o \( #{$TMUX_VERSION_MAJOR} -eq 1 -a #{$TMUX_VERSION_MINOR} -ge 8 \)" 'unbind v; bind v split-window -h -c "#{pane_current_path}"' | |
if-shell "#{$TMUX_VERSION_MAJOR} -gt 1 -o \( #{$TMUX_VERSION_MAJOR} -eq 1 -a #{$TMUX_VERSION_MINOR} -ge 8 \)" 'unbind %; bind % split-window -h -c "#{pane_current_path}"' | |
# default statusbar colors | |
set-option -g status-fg colour250 | |
set-option -g status-bg colour234 | |
set-option -g status-attr default | |
# default left statusbar colors | |
set-option -g status-left-fg colour250 | |
set-option -g status-left-bg default | |
set-option -g status-left-attr default | |
# default right statusbar colors | |
set-option -g status-right-fg colour240 | |
set-option -g status-right-bg default | |
set-option -g status-right-attr default | |
# default window title colors | |
set-window-option -g window-status-fg colour240 | |
set-window-option -g window-status-bg default | |
# active window title colors | |
set-window-option -g window-status-current-fg colour252 | |
set-window-option -g window-status-current-bg default | |
set-window-option -g window-status-current-attr default | |
# pane border | |
set-option -g pane-border-fg colour32 | |
set-option -g pane-active-border-fg colour33 | |
# message text | |
set-option -g message-fg colour232 | |
set-option -g message-bg colour32 | |
# pane number display | |
# set-option -g display-panes-active-colour colour32 | |
# set-option -g display-panes-colour colour166 | |
set-option -g mode-fg colour232 | |
set-option -g mode-bg colour32 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment