X-Git-Url: https://git.xinqibao.xyz/dotfiles.git/blobdiff_plain/9cf0df188624ad865ea563235842d543e285512a..d3e8cc5876a8246c8fe356311e6b2b9bd22363ad:/.tmux.conf?ds=sidebyside diff --git a/.tmux.conf b/.tmux.conf index 4aa3ac0..7af1b82 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,19 +1,24 @@ # Terminal and colors -set -g default-terminal 'xterm-256color' +set -g default-terminal 'tmux-256color' +set -g set-clipboard on +set -g allow-passthrough on # General settings -set -g history-limit 10000 +set -g history-limit 50000 set -g mouse on -set -g escape-time 0 +set -g escape-time 10 set -g focus-events on +set -g base-index 1 +set -g pane-base-index 1 +set -g renumber-windows off # Remap prefix from C-b to C-a unbind C-b set -g prefix C-a -bind C-a send-prefix +bind a send-prefix # Window and pane management -bind c new-window -c ${HOME} +bind c new-window -c "${HOME}" bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" bind C-a last-window @@ -26,42 +31,48 @@ set -g status-justify left set -g status-interval 2 set -g status-style fg=colour137,bg=colour234,dim set -g status-left '' -set -g status-left-length 20 set -g status-right '#[fg=colour233,bg=colour245,bold] %H:%M #[fg=colour233,bg=colour253,bold] %m-%d ' set -g status-right-length 50 # Window status -setw -g window-status-current-style fg=colour69,bg=colour253,bold -setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour233]#W#[fg=colour69]#F ' -setw -g window-status-style fg=colour131,bg=colour245,none -setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour233]#W#[fg=colour131]#F ' -setw -g window-status-bell-style fg=colour255,bg=colour1,bold +set -g window-status-current-style fg=colour69,bg=colour253,bold +set -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour233]#W#[fg=colour69]#F ' +set -g window-status-style fg=colour131,bg=colour245,none +set -g window-status-format ' #I#[fg=colour237]:#[fg=colour233]#W#[fg=colour131]#F ' +set -g window-status-bell-style fg=colour255,bg=colour1,bold # Pane borders set -g pane-border-style fg=colour238,bg=colour235 set -g pane-active-border-style fg=colour51,bg=colour236 # Messages -set -g message-style fg=colour232,bg=colour166,bold -set -g message-command-style fg=blue,bg=black +set -g message-style fg=colour232,bg=colour166,bold,width=50%,align=right +set -g status-keys emacs # Clock mode -setw -g clock-mode-colour colour135 -setw -g mode-style fg=colour196,bg=colour238,bold +set -g clock-mode-colour colour135 +set -g mode-style fg=colour196,bg=colour238,bold # Quiet mode set -g visual-activity off set -g visual-bell off set -g visual-silence off -set -g bell-action none -setw -g monitor-activity off +set -g bell-action other +set -g monitor-activity off +set -g monitor-bell on + +# Vi copy mode +set -g mode-keys vi +bind -T copy-mode-vi v send-keys -X begin-selection +bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel # Reload config bind r source-file ~/.tmux.conf \; display-message "Config reloaded" # Vim-tmux-navigator: smart pane switching with vim awareness # https://github.com/christoomey/vim-tmux-navigator -is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" +bind C-l send-keys C-l +is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +([^[:space:]]+/)?g?(view|n?vim?x?|fzf)(diff)?$'" bind -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' bind -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' bind -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'