darkcloud-tmuxconfig/tmux.normal.conf
Kevin MacMartin 299472a8bb Opening a new tab in the same dir when root places you in / so I'm
changing back to the new default behaviour of always $HOME. Also,
when changing panes with repeat on for h,j,k and l, you can't type
those letters until the repeat timeout is reached, so I'm keeping
repeat on for the arrow keys but removing it from h,j,k and l.
2014-06-04 17:24:37 -04:00

137 lines
5.9 KiB
Text

#
# DARKCLOUD TMUX CONFIG: tmux.conf
#
# Maintainer: Prurigro (prurigro-at-gmail-dot-com)
# Website: https://github.com/prurigro/darkcloud-tmuxconfig
#
# License: MIT
#
# Notes:
#
# The status bar shows traffic for the eth0 network device by default.
# To use a different device, set $NETDEV to it's device name (eg: wlan0).
#
# PRECONFIG
#
# unbind the command prefix and set the new one to ctrl-Space
unbind C-b
set-option -g prefix C-Space
bind Space send-prefix
# SETTINGS
#
# general
set-option -g default-terminal "screen-256color" #set $TERM to screen-256color for compatibility with programs expecting colour
set-option -g renumber-windows on #when a window is closed, renumber the remaining windows
set-option -g set-titles on #attempt to set the terminal title
set-option -g set-titles-string "#I:#P - #W - #T" #string used to set the terminal title
set-option -g history-limit 10000 #maximum number of lines kept in history
set-option -g display-time 2000 #number of ms for status line messages and other on-screen indicators to display
set-option -g display-panes-time 2000 #number of ms to show indicators from the display-panes command
set-option -sg escape-time 0 #allow commands immediately following send-prefix
set-option -sg repeat-time 600 #allow 600ms between repeatable commands
set-window-option -g utf8 on #expect to display utf8 in the window
set-window-option -g aggressive-resize on #only resize a window if a smaller client is actively looking
set-window-option -g monitor-activity on #monitor for activity in windows
set-window-option -g visual-activity off #show the activity being monitored for in the status bar
set-window-option -g xterm-keys on #generate xterm-style function key sequences for better compatibility
set-window-option -g mode-keys vi #use vi-style keys in copy and choice modes
#
# mouse
set-option -g mode-mouse on
set-option -g mouse-utf8 on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
# KEY BINDINGS
#
# m and ctrl-m to enabling and disabling the mouse respectively
bind m set-option -g mode-mouse on \; set-option -g mouse-resize-pane on \; set-option -g mouse-select-pane on \; set-option -g mouse-select-window on \; display 'Mouse: ON'
bind C-m set-option -g mode-mouse off \; set-option -g mouse-resize-pane off \; set-option -g mouse-select-pane off \; set-option -g mouse-select-window off \; display 'Mouse: OFF'
#
# r and ctrl-r to reloading ~/.tmux.conf and /etc/tmux.conf respectively
bind r source-file ~/.tmux.conf
bind C-r source-file /etc/tmux.conf
#
# \ and ctrl-\ to enabling and disabling the status bar respectively
bind \ set-option -g status on
bind C-\ set-option -g status off
#
# c and ctrl-c to create a new pane in the current path and in home respectively
bind C-c new-window -c '#{pane_current_path}'
bind c new-window
#
# [ and ] to splitting the window into top/bottom and left/right respectively
bind -r [ split-window -v -c '#{pane_current_path}'
bind -r ] split-window -h -c '#{pane_current_path}'
#
# { and } to rotating up and down respectively
bind -r { rotate-window -U
bind -r } rotate-window -D
#
# = and - to evenly laying out the panes left->right and top->bottom respectively
bind = select-layout even-horizontal
bind - select-layout even-vertical
#
# + and _ to vertically/horizontally laying out the panes with one large one on the top/left respectively
bind + select-layout main-horizontal
bind _ select-layout main-vertical
#
# Space and ctrl-Space to navigating to the previously selected pane and window respectively
bind Space last-pane
bind C-Space last-window
#
# h,j,k,l to movement left,down,up,right between panes respectively
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
#
# ~ to synchronous panes
bind ` set-window-option synchronize-panes \; display 'Toggling pane synchronization'
#
# escape to clearing history and screen
bind Escape send-keys -R\; send-keys 'C-l'\; clear-history
#
# ? and ctrl-? to keyboard and command help respectively
bind ? list-keys
bind / list-commands
#
# y and ctrl-p to copy mode and pasting the copy buffer respectively
bind y copy-mode
bind C-p paste-buffer
#
# (copy mode) v,y and escape to select, copy and cancel respectively
bind -t vi-copy y copy-selection
bind -t vi-copy v begin-selection
bind -t vi-copy Escape cancel
# STATUS LINE
#
# settings
set-option -g status on #enable the status bar
set-option -g status-utf8 on #expect to display utf8 in the status bar
set-option -g status-interval 2 #the number of seconds to wait before refreshing
set-option -g status-justify left #justify the window list on the left
set-option -g status-left-length '100' #the width in characters of the left side of the status line
set-option -g status-right-length '100' #the width in characters of the right side of the status line
set-window-option -g window-status-separator '' #the character to separate entries of the status line with
#
# general theme
set-option -g status-style bg=colour236
set-option -g message-style bg=colour235,fg=colour254,bold
set-option -g message-command-style fg=colour253,bg=colour235
set-option -g pane-border-style fg=colour235
set-option -g pane-active-border-style fg=colour167
set-window-option -g window-status-style fg=colour255,bg=colour236
set-window-option -g window-status-activity-style fg=colour222,bold
#
# theme for active and inactive window titles respectively
set-window-option -g window-status-format '#[fg=colour255,bg=colour236] #I #[fg=colour117,bg=colour236,nobold,nounderscore,noitalics]|#[fg=colour255,bg=colour236] #W '
set-window-option -g window-status-current-format ' #I #[fg=colour167,bg=colour235,bold,nounderscore,noitalics]|#[fg=colour253,bg=colour235,bold] #W '
#
# theme for the left and right sides respectively
set-option -g status-left '#[fg=colour117,bg=colour235,bold] #S '
set-option -g status-right '#[fg=colour222,bg=colour235] #([[ -n "$NETDEV" ]] && bwrate $NETDEV || bwrate eth0) #[fg=colour117,bg=colour236] %H:%M %Y-%m-%d #[fg=colour167,bg=colour235] #h '