Xinqi Bao's Git

docs: keep readme focused on setup
[dotfiles.git] / .tmux.conf
index 4aa3ac0..7af1b82 100644 (file)
@@ -1,19 +1,24 @@
 # Terminal and colors
 # 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
 
 # General settings
-set -g history-limit 10000
+set -g history-limit 50000
 set -g mouse on
 set -g mouse on
-set -g escape-time 0
+set -g escape-time 10
 set -g focus-events on
 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
 
 # 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
 
 # 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
 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-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
 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
 
 # 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
 
 # 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
 
 # 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
 
 # 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'
 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'