131 lines
4.2 KiB
Bash
131 lines
4.2 KiB
Bash
# change the prefix from 'C-b' to 'M-a'
|
|
unbind C-b
|
|
set-option -g prefix M-a
|
|
bind-key M-a send-prefix
|
|
|
|
# start with window 1 (instead of 0)
|
|
# set -g base-index 1
|
|
|
|
# start with pane 1
|
|
# set -g pane-base-index 1
|
|
|
|
# split panes using | and -, make sure they open in the same path
|
|
bind | split-window -h -c "#{pane_current_path}"
|
|
bind - split-window -v -c "#{pane_current_path}"
|
|
|
|
unbind '"'
|
|
unbind %
|
|
|
|
# open new windows in the current path
|
|
bind c new-window -c "#{pane_current_path}"
|
|
|
|
# reload config file
|
|
bind r source-file ~/.tmux.conf \; display "Reloaded tmux.conf!"
|
|
|
|
unbind p
|
|
bind p previous-window
|
|
|
|
# shorten command delay
|
|
set -sg escape-time 1
|
|
|
|
# don't rename windows automatically
|
|
set-option -g allow-rename off
|
|
|
|
# mouse control (clickable windows, panes, resizable panes)
|
|
set -g mouse on
|
|
set -g focus-events on
|
|
|
|
# Use Alt-arrow keys without prefix key to switch panes
|
|
bind -n M-h select-pane -L
|
|
bind -n M-l select-pane -R
|
|
bind -n M-k select-pane -U
|
|
bind -n M-j select-pane -D
|
|
|
|
# Pane resizing with HJKL
|
|
bind H resize-pane -L 10
|
|
bind J resize-pane -D 10
|
|
bind K resize-pane -U 10
|
|
bind L resize-pane -R 10
|
|
|
|
# Move windows back/forward
|
|
bind -n S-left swap-window -t -1
|
|
bind -n S-right swap-window -t +1
|
|
bind m command-prompt -p "Merge pane to:" "join-pane -t '%%'"
|
|
bind M command-prompt -p "Merge pane from:" "join-pane -s '%%'"
|
|
|
|
bind e setw synchronize-panes on \; display "Synchronize panes ON (E: off)"
|
|
bind E setw synchronize-panes off \; display "Synchronize panes OFF (e: on)"
|
|
|
|
bind -n M-0 select-window -t 0
|
|
bind -n M-1 select-window -t 1
|
|
bind -n M-2 select-window -t 2
|
|
bind -n M-3 select-window -t 3
|
|
bind -n M-4 select-window -t 4
|
|
bind -n M-5 select-window -t 5
|
|
bind -n M-6 select-window -t 6
|
|
bind -n M-7 select-window -t 7
|
|
bind -n M-8 select-window -t 8
|
|
bind -n M-9 select-window -t 9
|
|
|
|
bind 0 select-pane -t 0
|
|
bind 1 select-pane -t 1
|
|
bind 2 select-pane -t 2
|
|
bind 3 select-pane -t 3
|
|
bind 4 select-pane -t 4
|
|
bind 5 select-pane -t 5
|
|
bind 6 select-pane -t 6
|
|
bind 7 select-pane -t 7
|
|
bind 8 select-pane -t 8
|
|
bind 9 select-pane -t 9
|
|
|
|
# set default terminal mode to 256 colors
|
|
# set -g default-terminal "screen-256color"
|
|
# set default terminal mode to 256 colors
|
|
set-option -g default-terminal "tmux-256color"
|
|
set-option -sa terminal-overrides ',tmux-256color:RGB'
|
|
|
|
run-shell 'tmux setenv -g TMUX_VERSION $(tmux -V | \
|
|
sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
|
|
|
if-shell -b '[ "$(echo "$TMUX_VERSION < 2.9" | bc)" = 1 ]' " \
|
|
set-option -g status-attr dim; \
|
|
set-option -g status-bg colour237; \
|
|
set-option -g status-fg colour187; \
|
|
set-window-option -g window-status-attr dim; \
|
|
set-window-option -g window-status-bg colour237; \
|
|
set-window-option -g window-status-fg colour187; \
|
|
set-window-option -g window-status-current-attr dim; \
|
|
set-window-option -g window-status-current-bg '#000000'; \
|
|
set-window-option -g window-status-current-fg colour161; \
|
|
set-option -g pane-active-border-bg '#101010'; \
|
|
set-option -g pane-active-border-fg '#87d700'; \
|
|
set-option -g pane-border-bg '#101010'; \
|
|
set-option -g pane-border-fg '#505050'; \
|
|
set-option -g mode-bg '#000000'; \
|
|
set-option -g mode-fg colour187; \
|
|
set-option -g message-bg '#000000'; \
|
|
set-option -g message-fg colour187; \
|
|
"
|
|
|
|
if-shell -b '[ "$(echo "$TMUX_VERSION > 2.9" | bc)" = 1 ]' " \
|
|
set-option -g status-style fg=colour187,bg=colour237; \
|
|
set-window-option -g window-status-style fg=colour187,bg=colour237; \
|
|
set-window-option -g window-status-current-style fg=colour161,bg='#000000'; \
|
|
set-option -g pane-border-style fg='#505050',bg='#101010'; \
|
|
set-option -g pane-active-border-style fg='#87d700',bg='#101010'; \
|
|
set-option -g mode-style fg=colour187,bg='#000000'; \
|
|
set-option -g message-style fg=colour187,bg='#000000'; \
|
|
"
|
|
|
|
# Set extrakto clip tool. Default is xclip.
|
|
set -g @extrakto_clip_tool "xsel --input --clipboard"
|
|
|
|
# Plugins
|
|
run-shell '~/.tmux/plugins/tmux-resurrect/resurrect.tmux'
|
|
run-shell '~/.tmux/plugins/tmux-continuum/continuum.tmux'
|
|
run-shell '~/.tmux/plugins/tmux-yank/yank.tmux'
|
|
run-shell '~/.tmux/plugins/tmux-copycat/copycat.tmux'
|
|
run-shell '~/.tmux/plugins/tmux-open/open.tmux'
|
|
run-shell '~/.tmux/plugins/extrakto/extrakto.tmux'
|
|
|
|
set -g @continuum-restore 'on'
|