# Use a 256 color terminal set -g default-terminal "screen-256color" set-option -sa terminal-overrides ',screen-256color:RGB' # zsh set -g default-shell $SHELL # bind default prefix to ctrl-a set -g prefix C-a unbind-key C-b bind-key a send-prefix # more history set -g history-limit 10000 # Fix for sending keys to Vim setw -g xterm-keys on # set esc-timeout to 50ms (better vim) set -sg escape-time 50 # use vim motions :-) setw -g mode-keys vi # Force a reload of te config file unbind-key r bind-key r source-file ~/.tmux.conf \; display-message "Configuration reloaded!" # Copy & Paste with clipper -- see https://github.com/wincent/clipper # starting copy & paste with Ctrl+a [ bind-key -T copy-mode-vi 'v' send-keys -X begin-selection bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "nc localhost 8377" bind-key -T copy-mode-vi Escape send -X cancel # Saner window splitting / new windows bind-key '\' split-window -h -c "#{pane_current_path}" bind-key - split-window -v -c "#{pane_current_path}" bind-key c new-window -c "#{pane_current_path}" # Easier resizing unbind-key -n C-j unbind-key -n C-k unbind-key -n C-h unbind-key -n C-l bind-key -r C-j resize-pane -D bind-key -r C-k resize-pane -U bind-key -r C-h resize-pane -L bind-key -r C-l resize-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" # Mouse support set -g mouse on bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" bind -n WheelDownPane select-pane -t= \; send-keys -M bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M # counting panes starts at 1 set -g base-index 1 setw -g pane-base-index 1 # Disable assume-paste-time, so that iTerm2's "Send Hex Codes" feature works # with tmux 2.1. This is backwards-compatible with earlier versions of tmux set-option -g assume-paste-time 0 # How long should we show any messages? set -g display-time 2000 # statusbar colors set -g status-style bg=black,fg=yellow,default set -g pane-border-style fg=black set -g pane-active-border-style fg=brightgreen set -g message-style bg=black,fg=brightred set -g display-panes-active-colour blue set -g display-panes-colour brightred setw -g window-status-style fg=white,bg=default setw -g window-status-current-style fg=brightred,bg=default setw -g clock-mode-colour green # Custom status bar set -g status-left-length 32 set -g status-right-length 150 set -g status-interval 5 set -g status-left-length 60 set -g status-left '#[fg=brightblack,bg=brightwhite,bold] ❐ #S #[fg=white,bg=default,nobold] ⣿ #P ' set -g status-right '#[fg=white,bg=default,nobold] #(whoami)@#h# #[fg=black,bg=white,nobold] #(date +"%H:%M") ' set -g window-status-format '#[fg=white,bg=default] #I #W' set -g window-status-current-format '#[fg=black,bg=brightgreen]#[fg=black,bg=brightgreen,noreverse,bold] #I #W #[fg=brightgreen,bg=black,nobold]'