-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
121 additions
and
62 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,110 @@ | ||
#------------------------------------------------------------------------------ | ||
# DEFAULT CONFIGURATION | ||
#------------------------------------------------------------------------------ | ||
|
||
set -g base-index 1 # windows starts at 1 | ||
set -g default-terminal "screen-256color" # default colors configuration (needed for vim) | ||
set -g display-time 1000 # display messages for a second | ||
set -g set-titles on # tmux to rename windows | ||
set -g history-limit 10000 # Set scrollback to 10000 lines with | ||
setw -g monitor-activity on # Watch for activity in background windows | ||
set -g base-index 1 # set first window to index 1 (not 0) to map more to the keyboard layout | ||
setw -g pane-base-index 1 # set first window to index 1 (not 0) to map more to the keyboard layout | ||
setw -g mode-keys vi # Use vi keybindings in copy and choice modes | ||
|
||
#------------------------------------------------------------------------------ | ||
# SHORTCUT | ||
#------------------------------------------------------------------------------ | ||
|
||
# reload .tmux.conf file | ||
# https://github.com/seebi/tmux-colors-solarized/blob/master/tmuxcolors-256.conf | ||
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 -c "#{pane_current_path}" | ||
bind-key b split-window -c "#{pane_current_path}" | ||
|
||
# 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) #[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 edit-mode-vi Up send-keys -X history-up | ||
bind-key -T edit-mode-vi Down send-keys -X history-down | ||
unbind-key -T copy-mode-vi Space ; bind-key -T copy-mode-vi v send-keys -X begin-selection | ||
unbind-key -T copy-mode-vi Enter ; bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" | ||
unbind-key -T copy-mode-vi C-v ; bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle | ||
unbind-key -T copy-mode-vi [ ; bind-key -T copy-mode-vi [ send-keys -X begin-selection | ||
unbind-key -T copy-mode-vi ] ; bind-key -T copy-mode-vi ] send-keys -X 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..." | ||
|
||
# switch mouse mode | ||
bind m \ | ||
set -g mode-mouse on \;\ | ||
set -g mouse-resize-pane on \;\ | ||
set -g mouse-select-pane on \;\ | ||
set -g mouse-select-window on \;\ | ||
display 'Mouse: ON' | ||
bind M \ | ||
set -g mode-mouse off \;\ | ||
set -g mouse-resize-pane off \;\ | ||
set -g mouse-select-pane off \;\ | ||
set -g mouse-select-window off \;\ | ||
display 'Mouse: OFF' | ||
|
||
bind-key -n C-right next # ctrl+left/right cycles thru windows | ||
bind-key -n C-left prev # ctrl+left/right cycles thru windows | ||
bind-key -n M-left select-pane -L # alt+directions navigates through panes | ||
bind-key -n M-right select-pane -R # alt+directions navigates through panes | ||
bind-key -n M-up select-pane -U # alt+directions navigates through panes | ||
bind-key -n M-down select-pane -D # alt+directions navigates through panes | ||
|
||
bind -r , resize-pane -L 3 | ||
bind -r . resize-pane -R 3 | ||
|
||
bind S setw synchronize-panes | ||
bind \ kill-server # quit tmux | ||
|
||
#------------------------------------------------------------------------------ | ||
# PANE | ||
#------------------------------------------------------------------------------ | ||
|
||
# Window options | ||
setw -g automatic-rename on | ||
|
||
set -g status-left "#[fg=colour7,bg=colour2] #S #[fg=colour2,bg=colour0,nobold,nounderscore,noitalics] " | ||
set -g status-right "#[fg=colour11,bg=colour0,nobold,nounderscore,noitalics]#[fg=colour7,bg=colour11] %Y-%m-%d %H:%M #[fg=colour2,bg=colour11,nobold,nounderscore,noitalics]#[fg=colour8,bg=colour2] #h " | ||
setw -g window-status-format "#[fg=colour10,bg=colour0] #I #[fg=colour10,bg=colour0] #W " | ||
setw -g window-status-current-format "#[fg=colour0,bg=colour11,nobold,nounderscore,noitalics]#[fg=colour7,bg=colour11] #I #[fg=colour7,bg=colour11] #W #[fg=colour11,bg=colour0,nobold,nounderscore,noitalics]" | ||
|
||
# Theme (Solarized 256) | ||
source ~/.tmux/tmux-colors-solarized/tmuxcolors-dark.conf | ||
# auto window rename | ||
set-window-option -g automatic-rename | ||
|
||
# color | ||
set -g default-terminal "screen-256color" | ||
|
||
# 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 off' | ||
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 1\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set -g mode-mouse off' | ||
|
||
# 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}"' |
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