mirror of
https://github.com/prurigro/darkcloud-tmuxconfig.git
synced 2024-09-16 08:52:17 -04:00
299472a8bb
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.
137 lines
5.9 KiB
Text
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 '
|