set -g prefix C-space # # Key bindings # bind C-space send-prefix bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" \; display "RELOADED" # Window/pane management (new windows/panes use the path in current pane) bind c new-window -c '#{pane_current_path}' bind | split-window -h -c '#{pane_current_path}' bind - split-window -v -c '#{pane_current_path}' bind x kill-pane bind X kill-window bind n command-prompt 'rename-window %%' bind N command-prompt 'rename-session %%' # Move around bind . next-window bind , previous-window bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Resize panes bind -r C-h resize-pane -L 5 bind -r C-j resize-pane -D 5 bind -r C-k resize-pane -U 5 bind -r C-l resize-pane -R 5 # Arrangement of panes bind b break-pane \; select-pane -m \; last-window bind H join-pane -h -b bind J join-pane -v bind K join-pane -v -b bind L join-pane -h # Choosing layouts bind -r C-o rotate-window bind -r C-i rotate-window -D bind -r space next-layout bind C-m set main-pane-width 50% \; select-layout main-vertical bind C-e select-layout even-horizontal bind C-t select-layout tiled # Stay in copy mode on drag end unbind-key -T copy-mode-vi MouseDragEnd1Pane # # General # set -s focus-events on # pass focus events from terminal to applications set -gs escape-time 50 # avoid delays with ESC in vim set -gs repeat-time 1000 # allow 1 second for multiple commands set -g base-index 1 # start window numbering from 1 set -g history-limit 20000 # remember longer history setw -g automatic-rename on # automatically rename windows setw -g mouse on # enable mouse support setw -g pane-base-index 1 # start pane numbering from 1 # Set $TERM, force 256 colors, and enable italics. # https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-a-256-colour-terminal # https://github.com/tmux/tmux/wiki/FAQ#i-dont-see-italics-or-italics-and-reverse-are-the-wrong-way-round set -g default-terminal 'tmux-256color' # Report true color support to programs. # https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-rgb-colour set -ga terminal-overrides ',*-256col*:Tc' # The shell will increment SHLVL by one when it is started -> unsetting this # variable here removes any memory of nesting before tmux was executed and will # cause shells to start with level 1 again within the session. set-environment -gu SHLVL # Fix for clipboard in vim running inside tmux: # See http://www.economyofeffort.com/2013/07/29/reattach-to-user-namespace-the-fix-for-your-tmux-in-os-x-woes/ # See http://stackoverflow.com/a/40154047 # See https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard if-shell 'test "$(uname)" = "Darwin"' \ 'set -g default-command "reattach-to-user-namespace -l $SHELL"' # # Style (status list, colors, ...) # set -g status-left ' ' set -g status-right '\ #{?client_prefix,#[fg=brightwhite],#[default]} #{session_name} @ #{host_short}' setw -g window-status-current-format '\ #{?client_prefix,#[fg=brightwhite],#[fg=blue]}#{window_index} \ #[fg=blue]#{window_name}\ #[fg=brightblack]#{window_flags} ' setw -g window-status-format '\ #{?client_prefix,#[fg=brightwhite],#[default]}#{window_index} \ #[default]#{window_name}\ #[fg=brightblack]#{window_flags} ' set -g status-justify left set -g status-style fg=white,bg=black set -g pane-border-style fg=black set -g pane-active-border-style fg=brightblack set -g message-style fg=brightwhite,bg=black set -g message-command-style fg=yellow,bg=black