diff --git a/private_dot_tmux.conf b/private_dot_tmux.conf new file mode 100644 index 0000000..1d5bb5e --- /dev/null +++ b/private_dot_tmux.conf @@ -0,0 +1,115 @@ +# ~/.tmux.conf + +# ============================================ +# ESSENTIAL SETTINGS +# ============================================ + +# Fix Vim ESC delay +set -sg escape-time 0 + +# Increase scrollback buffer +set -g history-limit 50000 + +# Start windows and panes at 1, not 0 +set -g base-index 1 +setw -g pane-base-index 1 + +# Enable mouse support +set -g mouse on + +# Enable focus events for vim autoread +set -g focus-events on + +# Set terminal with proper colors +set -g default-terminal "tmux-256color" +set -as terminal-features ",xterm-256color:RGB" + +# Aggressive resize for multi-client +setw -g aggressive-resize on + +# ============================================ +# KEY BINDINGS +# ============================================ + +# Change prefix to Ctrl+a (more ergonomic) +unbind C-b +set -g prefix C-a +bind C-a send-prefix + +# Reload config +bind r source-file ~/.tmux.conf \; display "Config reloaded!" + +# Better pane splitting (and keep current path) +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_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 + +# Vim-style pane resizing +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 + +# ============================================ +# APPEARANCE +# ============================================ + +# Status bar position +set -g status-position top + +# Status bar colors +set -g status-style 'bg=#13161d fg=#8b949e' +set -g status-left-length 20 +set -g status-right-length 50 + +# Status bar content +set -g status-left '#[fg=#00e68a,bold] #S #[fg=#30363d]│ ' +set -g status-right '#[fg=#30363d]│#[fg=#8b949e] %H:%M #[fg=#30363d]│#[fg=#8b949e] %d-%b-%y ' + +# Window status +setw -g window-status-format ' #I:#W ' +setw -g window-status-current-format '#[fg=#00e68a,bold] #I:#W ' + +# Pane border colors +set -g pane-border-style 'fg=#30363d' +set -g pane-active-border-style 'fg=#00e68a' + +# Message styling +set -g message-style 'bg=#00e68a fg=#000000 bold' + +# ============================================ +# COPY MODE +# ============================================ + +# Use vi keys +setw -g mode-keys vi + +# Vi-style copy bindings +bind -T copy-mode-vi v send -X begin-selection +bind -T copy-mode-vi y send -X copy-pipe-and-cancel "pbcopy" # macOS +# bind -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -selection clipboard -i" # Linux + +# ============================================ +# PLUGINS (via TPM) +# ============================================ + +# Install TPM first: +# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm + +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-continuum' + +# Plugin settings +set -g @resurrect-strategy-vim 'session' +set -g @continuum-restore 'on' + +# Initialize TPM (keep at bottom) +run '~/.tmux/plugins/tpm/tpm'