Add default tmux configuration
This commit is contained in:
115
private_dot_tmux.conf
Normal file
115
private_dot_tmux.conf
Normal file
@@ -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'
|
||||
Reference in New Issue
Block a user