Fix tmux 2.9 config issues & cleanup
This commit is contained in:
parent
25d7c10240
commit
b47c74a33f
70
tmux.conf
70
tmux.conf
@ -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,26 +37,29 @@ 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)?$"'
|
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
|
||||||
@ -66,49 +72,45 @@ bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
|||||||
bind -n C-\ if-shell "$is_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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user