##### Terminal & Color Support ##### # Kitty = truecolor set -g default-terminal "tmux-256color" set -ga terminal-overrides ",*:Tc" # Key line: set -g pane-border-style "bg=default" set -g pane-active-border-style "bg=default" set -g status-style "bg=default" set -g window-style "bg=default" set -g window-active-style "bg=default" set -g default-shell zsh set -g extended-keys on set -g extended-keys-format csi-u # Reduce escape sequence delay (fixes lag in nvim/zsh) set -sg escape-time 0 # Prefix to C-a # set -g prefix C-a # unbind C-b # bind-key C-a send-prefix # Mouse follow set -g mouse on # Split with better keys # unbind % # bind | split-window -h -c "#{pane_current_path}" # unbind '"' # bind - split-window -v -c "#{pane_current_path}" # Easy config eload unbind r bind r source-file ~/.config/tmux/tmux.conf # Move between panes with tmux-navigator is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf)(diff)?$'" bind-key -n 'C-h' if-shell "$is_vim" 'send-keys M-h' 'select-pane -L' bind-key -n 'C-j' if-shell "$is_vim" 'send-keys M-j' 'select-pane -D' bind-key -n 'C-k' if-shell "$is_vim" 'send-keys M-k' 'select-pane -U' bind-key -n 'C-l' if-shell "$is_vim" 'send-keys M-l' 'select-pane -R' # No automatic window renaming set-option -g allow-rename off # Bell set -g visual-activity off set -g visual-bell off set -g visual-silence off setw -g monitor-activity off set -g bell-action none # Status bar set -g status-position top set -g status-justify left # Start index on 1 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 # Resize panes bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5 bind -r H resize-pane -L 5 bind -r m resize-pane -Z # Resize dragging unbind -T copy-mode-vi MouseDragEnd1Pane # don't exit copy mode after dragging with mouse # Vim motions set-window-option -g mode-keys vi # Selection bind-key -T copy-mode-vi 'v' send -X begin-selection # start selecting text with "v" bind-key -T copy-mode-vi 'y' send -X copy-selection # copy text with "y" set -g @plugin "dweidner/tmux-theme" set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-cpu' set -g @plugin 'tmux-plugins/tmux-battery' set -g @plugin 'catppuccin/tmux#v2.1.1' # See https://github.com/catppuccin/tmux/tags for additional tags set -g @plugin 'b0o/tmux-autoreload' set -g @plugin 'tmux-plugins/tpm' bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel # Catppuccin config set -g @catppuccin_status_background none set -g @catppuccin_flavor 'mocha' set -g @catppuccin_window_status_style "basic" set -g status-right-length 100 set -g status-left "" set -g status-left-length 200 set -g status-right "#{E:@catppuccin_status_application}" set -agF status-right "#{E:@catppuccin_status_cpu}" set -ag status-right "#{E:@catppuccin_status_session}" set -ag status-right "#{E:@catppuccin_status_uptime}" set -agF status-right "#{E:@catppuccin_status_battery}" # Neovim delay fix set -sg escape-time 0 # Tmux keep session set-option -g detach-on-destroy off # Focus envents set-option -g focus-events on bind-key z resize-pane -Z \; if-shell "tmux list-panes -F '#F' | grep -q Z" "set -g status off" "set -g status on" # Clipboard set -g set-clipboard on run '~/.tmux/plugins/tpm/tpm'