Last active
April 5, 2017 15:38
-
-
Save malachaifrazier/670925b7d62e560fecdf026ba1d5c46f to your computer and use it in GitHub Desktop.
tmux.conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# use C-a, since it's on the home row and easier to hit than C-b | |
set-option -g prefix C-a | |
unbind-key C-a | |
bind-key C-a send-prefix | |
set -g base-index 1 | |
# Enable native Mac OS X copy/paste | |
# set-option -g default-command "/bin/bash -c 'which reattach-to-user-namespace >/dev/null && exec reattach-to-user-namespace $SHELL -l || exec $SHELL -l'" | |
# set-option -g default-command "reattach-to-user-namespace -l zsh" | |
# Setup 'v' to begin selection as in Vim | |
# bind-key -t vi-copy v begin-selection | |
# bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" | |
# Update default binding of `Enter` to also use copy-pipe | |
# unbind -t vi-copy Enter | |
# bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" | |
# vi is good | |
# setw -g mode-keys vi | |
# mouse behavior | |
set -g mouse on | |
# don't rename windows automatically | |
set-option -g allow-rename off | |
set-option -g default-terminal screen-256color | |
# Easy config reload | |
bind-key R source-file ~/.tmux.conf \; display-message "tmux.conf reloaded." | |
bind-key : command-prompt | |
bind-key r refresh-client | |
bind-key L clear-history | |
bind-key space next-window | |
bind-key bspace previous-window | |
bind-key enter next-layout | |
bind-key a last-pane | |
bind-key q display-panes | |
bind-key c new-window | |
# bind-key t next-window | |
# bind-key T previous-window | |
bind-key left next-window | |
bind-key right previous-window | |
# use vim-like keys for splits and windows | |
# bind-key v split-window -h -c "#{pane_current_path}" | |
# bind-key s split-window -v -c "#{pane_current_path}" | |
# bind-key h select-pane -L | |
# bind-key j select-pane -D | |
# bind-key k select-pane -U | |
# bind-key l select-pane -R | |
# uncomment below stanza to enable smart pane switching with awareness of vim splits | |
# bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-h) || tmux select-pane -L" | |
# bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-j) || tmux select-pane -D" | |
# bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-k) || tmux select-pane -U" | |
# bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys C-l) || tmux select-pane -R" | |
# bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys 'C-\\') || tmux select-pane -l" | |
# bind C-l send-keys 'C-l' | |
# bind-key -n C-l | |
bind \ split-window -h | |
bind - split-window -v | |
bind-key C-o rotate-window | |
bind-key + select-layout main-horizontal | |
bind-key = select-layout main-vertical | |
set-window-option -g other-pane-height 25 | |
set-window-option -g other-pane-width 80 | |
set-window-option -g pane-base-index 1 | |
bind-key [ copy-mode | |
bind-key ] paste-buffer | |
set-window-option -g display-panes-time 1500 | |
# Status Bar | |
set-option -g status-interval 1 | |
set-option -g status-left '' | |
set-option -g status-right '%l:%M%p' | |
set-window-option -g window-status-current-fg magenta | |
set-option -g status-fg default | |
# Status Bar solarized-dark (default) | |
set-option -g status-bg black | |
set-option -g pane-active-border-fg black | |
set-option -g pane-border-fg black | |
# Status Bar solarized-light | |
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g status-bg white" | |
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g pane-active-border-fg white" | |
if-shell "[ \"$COLORFGBG\" = \"11;15\" ]" "set-option -g pane-border-fg white" | |
# Set window notifications | |
setw -g monitor-activity on | |
setw -g window-status-fg cyan | |
setw -g window-status-bg default | |
setw -g window-status-attr dim | |
setw -g window-status-current-fg white | |
setw -g window-status-current-bg red | |
setw -g window-status-current-attr bright | |
setw -g window-status-fg cyan | |
setw -g window-status-bg default | |
setw -g window-status-attr dim | |
setw -g window-status-current-fg white | |
setw -g window-status-current-bg red | |
setw -g window-status-current-attr bright | |
set -g pane-border-fg green | |
set -g pane-border-bg black | |
set -g pane-active-border-fg white | |
set -g pane-active-border-bg yellow | |
set -g message-fg white | |
set -g message-bg black | |
set -g message-attr bright | |
set -g status-fg white | |
set -g status-bg black | |
set -g visual-activity on | |
set -g status-left-length 40 | |
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P" | |
set -g status-right "#[fg=cyan]%d %b %R" | |
set -g status-justify centre | |
set -g @plugin 'nhdaly/tmux-scroll-copy-mode' | |
# Allow the arrow key to be used immediately after changing windows | |
set-option -g repeat-time 0 | |
# Fix to allow mousewheel/trackpad scrolling in tmux 2.1 | |
bind-key -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M" | |
bind-key -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M" | |
# Disable assume-paste-time, so that iTerm2's "Send Hex Codes" feature works | |
# with tmux 2.1. This is backwards-compatible with earlier versions of tmux, | |
# AFAICT. | |
set-option -g assume-paste-time 0 | |
# source-file ~/.tmux.conf | |
# bind r source-file ~/.tmux.conf |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment