diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..51bfc54 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,122 @@ +# ============================================================================= +# TMUX Configuration +# ============================================================================= + +# ----------------------------------------------------------------------------- +# General Settings +# ----------------------------------------------------------------------------- + +# Use 256 colors and true color support +set -g default-terminal "tmux-256color" +set -ag terminal-overrides ",xterm-256color:RGB" + +# Enable mouse support +set -g mouse on + +# Start windows and panes at 1, not 0 +set -g base-index 1 +setw -g pane-base-index 1 + +# Renumber windows when one is closed +set -g renumber-windows on + +# Increase scrollback buffer +set -g history-limit 50000 + +# Faster key repetition +set -s escape-time 0 + +# Increase display time for messages +set -g display-time 2000 + +# Focus events for vim/neovim +set -g focus-events on + +# ----------------------------------------------------------------------------- +# Key Bindings +# ----------------------------------------------------------------------------- + +# Reload config with prefix + r +bind r source-file ~/.tmux.conf \; display-message "Config reloaded" + +# Split panes with | and - +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" + +# New window in current path +bind c new-window -c "#{pane_current_path}" + +# Vim-style pane navigation +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# Resize panes with prefix + H/J/K/L +bind -r H resize-pane -L 5 +bind -r J resize-pane -D 5 +bind -r K resize-pane -U 5 +bind -r L resize-pane -R 5 + +# Quick window switching +bind -r n next-window +bind -r p previous-window + +# ----------------------------------------------------------------------------- +# Status Bar - handled by catppuccin theme +# ----------------------------------------------------------------------------- + +# Status bar position (bottom) +set -g status-position bottom + +# ----------------------------------------------------------------------------- +# Plugins +# ----------------------------------------------------------------------------- + +# TPM - Tmux Plugin Manager +set -g @plugin 'tmux-plugins/tpm' + +# Sensible defaults +set -g @plugin 'tmux-plugins/tmux-sensible' + +# Session persistence - ESSENTIAL +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-continuum' + +# Session manager with fuzzy finding +set -g @plugin 'sainnhe/tmux-fzf' + +# Better copy/paste +set -g @plugin 'tmux-plugins/tmux-yank' + +# Theme - Gruvbox +set -g @plugin 'egel/tmux-gruvbox' + +# ----------------------------------------------------------------------------- +# Plugin Configuration +# ----------------------------------------------------------------------------- + +# tmux-resurrect: save and restore sessions +set -g @resurrect-capture-pane-contents 'on' +set -g @resurrect-strategy-nvim 'session' + +# tmux-continuum: auto-save and restore +set -g @continuum-restore 'on' +set -g @continuum-save-interval '15' + +# tmux-fzf configuration +TMUX_FZF_LAUNCH_KEY="f" + +# Gruvbox theme configuration +set -g @tmux-gruvbox 'dark' + +# ----------------------------------------------------------------------------- +# Initialize TPM +# ----------------------------------------------------------------------------- +run '~/.tmux/plugins/tpm/tpm' + +# ----------------------------------------------------------------------------- +# Override status bar (after theme loads) +# ----------------------------------------------------------------------------- +set -g status-right "" +