Does this work pre-2.9?

This commit is contained in:
Kenneth Benzie 2019-08-11 18:37:55 +01:00
parent 25d7c10240
commit 73d2ca5505

View File

@ -1,3 +1,6 @@
# Set the tmux version to check for command support
run 'tmux setenv -g TMUX_VERSION $(tmux -V | cut -c 6-8)'
# Use vim keybindings in copy mode # Use vim keybindings in copy mode
set -g mode-keys vi set -g mode-keys vi
@ -34,81 +37,79 @@ set -g pane-base-index 1
# Enable mouse support # Enable mouse support
set-option -g mouse on set-option -g mouse on
# Enable changing cursor shape per pane in iTerm2 or VTE compatible terminals, # Enable changing cursor shape per pane, vim or zsh should emit escape
# vim or zsh should emit VTE compatible escape sequences to change cursor shape # sequences to change cursor shape.
if -b '[ -n $ITERM_PROFILE ]' \ # iTerm2 only requires this before tmux 2.9
"set -ga terminal-overrides '*:Ss=\E]1337;CursorShape=%p1%d\7'" \ if '[ -n $ITERM_PROFILE ] && [[ "$TMUX_VERSION" < "2.9" ]]' \
"set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[2 q'" 'set -ga terminal-overrides "*:Ss=\E]1337;CursorShape=%p1%d\7"'
# VTE compatible terminals.
if '[ ! -n $ITERM_PROFILE ]' \
'set -ga terminal-overrides "*:Ss=\E[%p1%d q:Se=\E[2 q"'
# Enable strikethrough on VTE compatible terminals. # Enable strikethrough on VTE compatible terminals.
set -ga terminal-overrides 'xterm*:smxx=\E[9m' set -ga terminal-overrides 'xterm*:smxx=\E[9m'
# Set only on OS X where it's required # Set only on macOS where it's required
if -b '[ "`uname`" = "Darwin" ]' \ if -b '[ "`uname`" = "Darwin" ]' \
"set -g default-command 'reattach-to-user-namespace -l $SHELL'" 'set -g default-command "reattach-to-user-namespace -l $SHELL"'
# Restore old next/previous window bindings # Restore old next/previous window bindings
bind C-n next-window bind C-n next-window
bind C-p previous-window bind C-p previous-window
# Make new splits open in current directory # Make new splits open in current directory
bind "\"" split-window -c "#{pane_current_path}" bind '"' split-window -c '#{pane_current_path}'
bind "%" split-window -h -c "#{pane_current_path}" bind '%' split-window -h -c '#{pane_current_path}'
# Integrate pane selection with vim # Integrate pane selection with vim
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' in_vim='[[ "$(tmux show-window-options)" = *"@vim#{pane_id}"* ]] && \
unbind -T copy-mode-vi C-h [[ "#{pane_current_command}" != zsh ]]'
unbind -T copy-mode-vi C-j bind -n C-h if $in_vim 'send-keys C-h' 'select-pane -L'
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" bind -n C-j if $in_vim 'send-keys C-j' 'select-pane -D'
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind -n C-k if $in_vim 'send-keys C-k' 'select-pane -U'
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind -n C-l if $in_vim 'send-keys C-l' 'select-pane -R'
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind -n C-\ if $in_vim 'send-keys C-\\' 'select-pane -l'
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# Integrate urlview # Integrate urlview
bind u capture-pane \; split-window "tmux show-buffer | urlview -" bind u capture-pane \; split-window 'tmux show-buffer | urlview -'
# Unbind copy mode defaults so pane selection works
unbind -T copy-mode-vi C-h
unbind -T copy-mode-vi C-j
# Enter copy mode with C-U # Enter copy mode with C-U
bind C-u copy-mode -u bind C-u copy-mode -u
# Begin selection in copy mode with v not Space # Begin selection in copy mode with v not Space
bind -T copy-mode-vi v send-keys -X begin-selection bind -T copy-mode-vi v send-keys -X begin-selection
# Yank to the system clipboard in copy mode # Yank to the system clipboard in copy mode
if -b '[ "`uname`" = "Darwin" ]' \ if -b '[ "`uname`" = "Darwin" ]' \
"bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy'" \ 'bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \
"bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -i -p && xsel -o -p | xsel -i -b'" "reattach-to-user-namespace pbcopy"' \
'bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel \
"xsel -i -p && xsel -o -p | xsel -i -b"'
# Left status style # Left status style
set-window-option -g status-left " #S" setw -g status-left " #{session_name}"
set-window-option -g status-left-fg colour240 setw -g status-left-style fg=colour240,bg=colour233
set-window-option -g status-left-bg colour233
# Centre status style # Centre status style
set-window-option -g status-fg colour240 setw -g status-style fg=colour240,bg=colour233
set-window-option -g status-bg colour233
# Right status style # Right status style
set-window-option -g status-right "%a %d-%m-%y %H:%M " setw -g status-right "%a %d-%m-%y %H:%M "
set-window-option -g status-right-fg white setw -g status-right-style fg=white,bg=colour233
set-window-option -g status-right-bg colour233
# Active window status style # Active window status style
set-window-option -g window-status-current-format " #I: #W" setw -g window-status-current-format " #{window_index}: #{window_name}"
set-window-option -g window-status-current-fg white setw -g window-status-current-style fg=white,bg=colour233
set-window-option -g window-status-current-bg colour233
# Inactive window status style # Inactive window status style
set-window-option -g window-status-format " #I: #W" setw -g window-status-format " #{window_index}: #{window_name}"
set-window-option -g window-status-fg colour240 setw -g window-status-style fg=colour240,bg=colour233
set-window-option -g window-status-bg colour233
# Active pane border # Pane border style
set-option -g pane-active-border-fg colour235 set -g pane-border-style fg=colour233,bg=colour233
set-option -g pane-active-border-bg colour235 set -g pane-active-border-style fg=colour235,bg=colour235
# Inactive pane border
set-option -g pane-border-fg colour233
set-option -g pane-border-bg colour233
# Command line window list selection # Command line window list selection
set-window-option -g mode-style fg=white,bg=colour237 set-window-option -g mode-style fg=white,bg=colour237