72 lines
3.0 KiB
Bash
72 lines
3.0 KiB
Bash
# Plugind
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
# set -g @plugin 'thewtex/tmux-mem-cpu-load'
|
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
|
|
|
# Install `tpm` if needed.
|
|
if "test ! -d ~/.tmux/plugins/tpm" \
|
|
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
|
|
|
|
# Activate the plugins.
|
|
run -b "~/.tmux/plugins/tpm/tpm"
|
|
|
|
set -g mouse on
|
|
|
|
# Start windows and panes at 1, not 0
|
|
set -g base-index 1
|
|
set -g pane-base-index 1
|
|
set-window-option -g pane-base-index 1
|
|
set-option -g renumber-windows on
|
|
|
|
# VIM and FZF navigation bindings
|
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
|
is_fzf="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?fzf$'"
|
|
bind -n C-h run "($is_vim && tmux send-keys C-h) || tmux select-pane -L"
|
|
bind -n C-j run "($is_vim && tmux send-keys C-j) || ($is_fzf && tmux send-keys C-j) || tmux select-pane -D"
|
|
bind -n C-k run "($is_vim && tmux send-keys C-k) || ($is_fzf && tmux send-keys C-k) || tmux select-pane -U"
|
|
bind -n C-l run "($is_vim && tmux send-keys C-l) || tmux select-pane -R"
|
|
# bind -n 'C-\' if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
|
|
|
|
bind -n M-h run "($is_vim && tmux send-keys M-h) || tmux resize-pane -L 1"
|
|
bind -n M-j run "($is_vim && tmux send-keys M-j) || tmux resize-pane -D 1"
|
|
bind -n M-k run "($is_vim && tmux send-keys M-k) || tmux resize-pane -U 1"
|
|
bind -n M-l run "($is_vim && tmux send-keys M-l) || tmux resize-pane -R 1"
|
|
|
|
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 C-M-n select-window -n
|
|
bind -n C-M-c new-window
|
|
bind -n C-M-x confirm kill-pane
|
|
bind -n C-M-h split-window -v -c "#{pane_current_path}"
|
|
bind -n C-M-v split-window -h -c "#{pane_current_path}"
|
|
bind -n C-g display-popup -d "#{pane_current_path}" -E -w 90% -h 90% "lazygit"
|
|
|
|
set-option -g status-position top
|
|
set-option -g default-terminal "tmux-256color"
|
|
set-option -sa terminal-features ',xterm-256color:RGB'
|
|
set-option -sg escape-time 1
|
|
set-option -g focus-events on
|
|
|
|
# set -g allow-passthrough on
|
|
# set -g extended-keys on
|
|
set -g status-interval 2
|
|
set -g status-bg "#303030"
|
|
set -g status-fg "#c6c6c6"
|
|
set -g status-left ''
|
|
set -g status-right '#[fg=#87afd7,bg=#303030]#[fg=#c6c6c6,bg=#303030] #{pane_current_path} #[bg=#87afd7,fg=#000000] %d-%b-%Y %H:%M '
|
|
|
|
# Use normal and bright monochrome colors to show a tab line on the left.
|
|
set -g status-justify left
|
|
set-window-option -g window-status-separator ''
|
|
set-window-option -g window-status-format '#[bg=#303030,fg=#c6c6c6] #I '
|
|
set-window-option -g window-status-current-format '#[bg=#87afd7,fg=#000000] #I '
|
|
|
|
# Switching panes should change the foreground color but not border colors.
|
|
set -g window-style 'bg=default,fg=#c6c6c6'
|
|
set -g window-active-style 'bg=default,fg=white'
|
|
set -g pane-border-style 'bg=default,fg=#0c0c0c'
|
|
set -g pane-active-border-style 'bg=default,fg=#afd787'
|