Created
January 22, 2016 17:51
-
-
Save leoallen85/32a954cbe549b7b37345 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
# improve colors | |
set -g default-terminal 'xterm-256color' | |
unbind r | |
bind r source-file ~/.tmux.conf | |
# act like vim | |
setw -g mode-keys vi | |
bind h select-pane -L | |
bind j select-pane -D | |
bind k select-pane -U | |
bind l select-pane -R | |
bind-key -r C-h select-window -t :- | |
bind-key -r C-l select-window -t :+ | |
# act like GNU screen | |
unbind C-b | |
set -g prefix C-a | |
# start window numbers at 1 to match keyboard order with tmux window order | |
set -g base-index 1 | |
set-window-option -g pane-base-index 1 | |
# renumber windows sequentially after closing any of them | |
set -g renumber-windows on | |
# soften status bar color from harsh green to light gray | |
set -g status-bg '#666666' | |
set -g status-fg '#aaaaaa' | |
# remove administrative debris (session name, hostname, time) in status bar | |
set -g status-left '' | |
set -g status-right '' | |
# increase scrollback lines | |
set -g history-limit 10000 | |
# switch to last pane | |
bind-key C-a last-pane | |
# use different keys to split vertical and horizonal | |
bind | split-window -h | |
bind - split-window -v | |
# enable copy-paste http://goo.gl/DN82E | |
set-option -g status-bg colour235 #base02 | |
set-option -g status-fg colour136 #yellow | |
set-option -g status-attr default | |
# set window split | |
bind-key v split-window -h | |
bind-key b split-window | |
# default window title colors | |
set-window-option -g window-status-fg colour244 #base0 | |
set-window-option -g window-status-bg default | |
#set-window-option -g window-status-attr dim | |
# active window title colors | |
set-window-option -g window-status-current-fg colour166 #orange | |
set-window-option -g window-status-current-bg default | |
#set-window-option -g window-status-current-attr bright | |
# pane border | |
set-option -g pane-border-fg colour235 #base02 | |
set-option -g pane-active-border-fg colour240 #base01 | |
# message text | |
set-option -g message-bg colour235 #base02 | |
set-option -g message-fg colour166 #orange | |
# pane number display | |
set-option -g display-panes-active-colour colour33 #blue | |
set-option -g display-panes-colour colour166 #orange | |
# 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 20 | |
set -g status-right-length 140 | |
set -g status-left '#[fg=green]#H #[fg=black]• #[fg=green,bright]#(uname -r | cut -c 1-6)#[default]' | |
set -g status-right '#[fg=green,bg=default,bright]#(tmux-mem-cpu-load -i 1) #[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' | |
# 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 | |
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 | |
# rm mouse mode fail | |
set -g mode-mouse off | |
# color | |
set -g default-terminal "screen-256color" | |
# status bar | |
set-option -g status-utf8 on | |
# https://github.com/edkolev/dots/blob/master/tmux.conf | |
# Updates for tmux 1.9's current pane splitting paths. | |
if-shell "[[ `tmux -V` == *1.9* ]]" 'unbind c; bind c new-window -c "#{pane_current_path}"' | |
if-shell "[[ `tmux -V` == *1.9* ]]" 'unbind s; bind s split-window -v -c "#{pane_current_path}"' | |
if-shell "[[ `tmux -V` == *1.9* ]]" "unbind '\"'; bind '\"' split-window -v -c '#{pane_current_path}'" | |
if-shell "[[ `tmux -V` == *1.9* ]]" 'unbind v; bind v split-window -h -c "#{pane_current_path}"' | |
if-shell "[[ `tmux -V` == *1.9* ]]" 'unbind %; bind % split-window -h -c "#{pane_current_path}"' | |
set -g default-command "reattach-to-user-namespace -l zsh" | |
# change cursor in vim to distinguish between insert and command mode | |
# Use in conjunciton with tmux-cursors.vim | |
set-option -g terminal-overrides '*88col*:colors=88,*256col*:colors=256,xterm*:XT:Ms=\E]52;%p1%s;%p2%s\007:Cc=\E]12;%p1%s\007:Cr=\E]112\007:Cs=\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%p1%{2}%-%;%d\007' | |
# use C-a v to paste the tmux buffer | |
bind v paste-buffer | |
# Enable mouse support (works in iTerm) | |
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 | |
set-option -g default-shell /bin/zsh | |
# --------------------- | |
# Copy & Paste | |
# --------------------- | |
# provide access to the clipboard for pbpaste, pbcopy | |
set-option -g default-command "reattach-to-user-namespace -l zsh" | |
set-window-option -g automatic-rename on | |
# use vim keybindings in copy mode | |
setw -g mode-keys vi | |
# setup 'v' to begin selection as in Vim | |
bind-key -t vi-copy v begin-selection | |
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" | |
# update default binding of 'Enter' to also use copy-pipe | |
unbind -t vi-copy Enter | |
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" | |
bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' | |
bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' | |
set-option -g status-right '#(cat ~/.thyme-tmux)' | |
set-option -g status-interval 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment