diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..23eb023 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,90 @@ +# Setup tmux +# +# Authors: +# Corrado Primier +# +# Loosely based on +# dotphiles config by Ben O'Hara +# byobu's settings (http://byobu.co/) +# + +# 0 is too far from ` ;) +set-option -g base-index 1 +set-window-option -g pane-base-index 1 + +set-option -g default-command $SHELL +set-option -g default-shell $SHELL + +# Automatically set window title +set-window-option -g automatic-rename on +set-option -g set-titles on +set-option -g set-titles-string '[#S:#I #h] #W' + +set -g default-terminal "screen-256color" +set -g terminal-overrides 'xterm:colors=256' +set -g status-keys vi +set -g history-limit 100000 + +# Use vi mode +setw -g mode-keys vi + +# Disable mouse control by default +setw -g mouse off + +# Enter copy mode like byobu does +bind-key -n M-PPage copy-mode -u + +# Toggle mouse mode to allow mouse copy/paste +# set mouse on with prefix m +bind m \ + set -g mouse on\;\ + display 'Mouse: ON' +# set mouse off with prefix M +bind M \ + set -g mouse off\;\ + display 'Mouse: OFF' + +# Sane window spltting +bind-key | split-window -h +bind-key - split-window -v + +# Sane pane resizing +bind-key -n M-S-Down resize-pane -D +bind-key -n M-S-Up resize-pane -U +bind-key -n M-S-Left resize-pane -L +bind-key -n M-S-Right resize-pane -R +bind-key -n S-F11 resize-pane -Z + +# 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 + +# Use Shift-arrow keys without prefix key to switch panes +bind -n S-Left select-pane -L +bind -n S-Right select-pane -R +bind -n S-Up select-pane -U +bind -n S-Down select-pane -D + +# Alt-arrow to switch windows +bind -n M-Left previous-window +bind -n M-Right next-window + +# Renumber windows when closing one +set -g renumber-windows on + +# Easily toggle synchronization (mnemonic: e is for echo) +bind e setw synchronize-panes + +# No delay for escape key press +set -sg escape-time 0 + +# Quick reload tmux config +bind r source-file ~/.tmux.conf \; display-message 'Reloaded ~/.tmux.conf!' + +# Set window notifications +setw -g monitor-activity on +set -g visual-activity off + +# Enable Ctrl-arrow navigation +setw -g xterm-keys on