dotfiles/config/tmux/tmux.conf

122 lines
4.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 J join-pane -v
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 -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 and force 256 colors.
# https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-a-256-colour-terminal
set -g default-terminal 'screen-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-length 32
set -g status-right-length 48
set -g status-justify centre
# Color definitions
# SOLARIZED TMUX SOLARIZED TMUX
# --------- -------- --------- --------
# Base03 colour8 Yellow colour3
# Base02 colour0 Orange colour9
# Base01 colour10 Red colour1
# Base00 colour11 Magenta colour5
# Base0 colour12 Violet colour13
# Base1 colour14 Blue colour4
# Base2 colour7 Cyan colour6
# Base3 colour15 Green colour2
set -g status-left "\
#{?client_prefix,#[fg=colour1],#[fg=colour10]}\
#[push-default,fg=colour3]#{session_name} #[pop-default,default] \
#[push-default,fg=colour2]#{window_index}.#{pane_index} #[pop-default,default] \
#[push-default,fg=colour6]#{pane_id}#{?pane_marked,#[fg=colour9] M,}"
set -g status-right "\
#{?client_prefix,#[fg=colour1],#[fg=colour10]}\
#[push-default,fg=colour6]#{pid} #[pop-default,default] \
#[push-default,fg=colour2]#{host_short} #[pop-default,default] \
#[push-default,fg=colour3]%b %d %H:%M"
setw -g window-status-current-format "#{window_index}:#{window_name}#{window_flags}"
setw -g window-status-format "#{window_index}:#{window_name}#{window_flags}"
set -g status-style bg=colour8
setw -g window-status-style fg=colour12,bg=default
setw -g window-status-current-style fg="colour4 underscore",bg=default
set -g pane-border-style fg=colour0
set -g pane-active-border-style fg=colour10
set -g message-style fg=colour15,bg=colour0
set -g message-command-style fg=colour3,bg=colour0