diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..9491898 --- /dev/null +++ b/tmux.conf @@ -0,0 +1,109 @@ +################################################################################ +# Base configuration +################################################################################ +# Use Ctrl-a as a prefix instead of Ctrl-b +set -g prefix C-a +unbind C-b + +# More responsive with sending commands +set -sg escape-time 1 + +# Start counting at 0, easier for keyboard shortcuts +set -g base-index 1 +set-window-option -g pane-base-index 1 + +# Mouse options +set -g mouse-select-pane off +set -g mouse-resize-pane off +set -g mouse-select-window off +setw -g mode-mouse off + +# Status +set -g status-interval 20 +set -g status-utf8 on +set -g status-justify centre + +set -g status-left "#[fg=colour75]#S:#I.#P" #colour75 is an awesome blue +set -g status-right "#[fg=colour75]%F %l:%M%P" #colour75 is an awesome blue + +setw -g monitor-activity on +set -g visual-activity on + +################################################################################ +# Colors +################################################################################ +set -g default-terminal "screen-256color" + +set -g status-fg white +set -g status-bg black + +setw -g window-status-fg colour108 # colour108 is an olive color +setw -g window-status-bg default +setw -g window-status-attr dim + +setw -g window-status-current-fg colour156 # colour156 is a lime green color +setw -g window-status-current-bg default +setw -g window-status-current-attr bright + +set -g pane-border-fg colour108 +set -g pane-border-bg default +set -g pane-active-border-fg colour156 +set -g pane-active-border-bg default + +set -g message-fg white +set -g message-bg black +set -g message-attr bright + +################################################################################ +# Custom bindings +################################################################################ +# Have buffers be more like vim buffers +setw -g mode-keys vi +unbind [ +bind Escape copy-mode +unbind p +bind p paste-buffer +bind -t vi-copy 'v' begin-selection +bind -t vi-copy 'y' copy-selection + +# integrate with system clipboard +bind C-c run 'tmux save-buffer - | xclip -i -sel clipboard' +bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" + +# Make current pane into it's own temp window +unbind Up +bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp +unbind Down +bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp + +# Make switch session shortcut repeatable +bind -r ( switch-client -p +bind -r ) switch-client -n + +bind P pipe-pane -o "cat >> ~/#S-#W.log" \; display "Toggled logging to ~/#S-#W.log" + +# Reload config with prefix r +bind r source-file ~/.tmux.conf \; display "Reloaded" + +# Send prefix to the terminal +bind C-a send-prefix + +# Create panes bindings +bind | split-window -h +bind \ split-window -h +bind - split-window -v + +# Vim bindings +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +bind -r H resize-pane -L 5 +bind -r J resize-pane -D 5 +bind -r K resize-pane -U 5 +bind -r L resize-pane -R 5 + +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ +