set -g mouse on bind r source-file ~/.tmux.conf set-option -a terminal-features 'XXX:RGB' set-option -sg escape-time 10 set-option -g focus-events on set-window-option -g mode-keys vi set-option -g renumber-windows on # Allow passthrough set -gq allow-passthrough on set -g visual-activity off # Key Bindings # Auto Source tmux.conf unbind r bind r source-file ~/.tmux.conf \; display "Reloaded!" # Set binding for searching with / and ? bind-key / copy-mode \; send-key ? # Setting up vi binds for tmux copy mode bind-key -T copy-mode-vi "v" send-keys -X begin-selection bind-key -T copy-mode-vi "y" send-keys -X copy-selection unbind -T copy-mode-vi MouseDragEnd1Pane # Setting up vertical split with | unbind % bind | split-window -h -c '#{pane_current_path}' # Set kill pane to Shift + Option + X bind -n M-X kill-pane # Setting up horizontal split with - unbind '"' bind - split-window -v -c '#{pane_current_path}' # Setting up window movement with leader key + Left/Right arrow bind Left swap-window -t -1\; select-window -t -1 bind Right swap-window -t +1\; select-window -t +1 # Setting up pane resize with hjkl 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 # Setting up pane minimize/maximize with m bind -r m resize-pane -Z # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'MunifTanjim/tmux-mode-indicator' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @plugin 'omerxx/catppuccin-tmux' set -g @plugin 'omerxx/tmux-sessionx' set -g @plugin 'omerxx/tmux-floax' set -g @resurrect-dir "~/.tmux/resurrect" set -g @resurrect-capture-pane-contents 'on' set -g @sessionx-bind 's' set -g @sessionx-window-mode 'on' set -g @sessionx-tree-mode 'off' set -g status-position top set -g @catppuccin_window_left_separator "" set -g @catppuccin_window_right_separator " " set -g @catppuccin_window_middle_separator " █" set -g @catppuccin_window_number_position "right" set -g @catppuccin_window_default_fill "number" set -g @catppuccin_window_default_text "#W" set -g @catppuccin_window_current_fill "number" set -g @catppuccin_window_current_text "#W#{?window_zoomed_flag,(),}" set -g @catppuccin_status_modules_right "directory date_time" set -g @catppuccin_status_modules_left "session" set -g @catppuccin_status_left_separator " " set -g @catppuccin_status_right_separator " " set -g @catppuccin_status_right_separator_inverse "no" set -g @catppuccin_status_fill "icon" set -g @catppuccin_status_connect_separator "no" set -g @catppuccin_directory_text "#{b:pane_current_path}" set -g @catppuccin_date_time_text "%H:%M" # for neovim set -g @resurrect-strategy-nvim 'session' set -g @continuum-restore 'on' # Is VIM? # TMUX Navigation is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf|pipenv)(diff)?$'" bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' bind-key -T copy-mode-vi 'C-h' select-pane -L bind-key -T copy-mode-vi 'C-j' select-pane -D bind-key -T copy-mode-vi 'C-k' select-pane -U bind-key -T copy-mode-vi 'C-l' select-pane -R bind-key -T copy-mode-vi 'C-\' select-pane -l # # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm'