Skip to content

Instantly share code, notes, and snippets.

@andynu
Created July 18, 2025 15:53
Show Gist options
  • Save andynu/31d6aa0ff9b82ec55b6bdfd5026ad963 to your computer and use it in GitHub Desktop.
Save andynu/31d6aa0ff9b82ec55b6bdfd5026ad963 to your computer and use it in GitHub Desktop.
tmux.conf
# =============================================================================
# BASIC SETTINGS
# =============================================================================
set -s escape-time 1
set -g base-index 1
setw -g pane-base-index 1
set -g history-limit 10000
setw -g automatic-rename off
set-option -g focus-events on
set-option -g set-titles on
set-option -g set-titles-string '#S:#I.#P #W'
# =============================================================================
# PREFIX KEY CONFIGURATION
# =============================================================================
unbind C-b
unbind C-d
set -g prefix C-a
bind a send-prefix
bind C-a last-window
# =============================================================================
# VI MODE SETTINGS
# =============================================================================
setw -g mode-keys vi
unbind [
bind Escape copy-mode
# =============================================================================
# STATUS BAR CONFIGURATION
# =============================================================================
set-option -g status on
set-option -g status-interval 2
set-option -g status-justify "centre"
set-option -g status-left-length 60
set-option -g status-right-length 90
set -g status-left '#[fg=default](#S)#[default]'
set -g status-right '#[fg=colour236]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=colour249]%H:%M#[default]'
# =============================================================================
# WINDOW STATUS FORMAT
# =============================================================================
setw -g window-status-format " #F#I:#W#F "
setw -g window-status-current-format " #F#I:#W#F "
setw -g window-status-format "#[bg=black]#[fg=colour238] #I #[bg=colour244]#[fg=colour238] #W "
setw -g window-status-current-format "#[bg=black]#[fg=colour244] #I #[fg=colour244]#[bg=colour15] #W "
# =============================================================================
# COLOR THEME
# =============================================================================
set -g message-style bg='#333333',fg='#999999'
set -g status-style bg='#333333',fg='#999999'
set -g status-interval 1
set -g default-terminal "tmux-256color"
# =============================================================================
# WINDOW SPLITTING
# =============================================================================
unbind %
bind _ split-window
bind S split-window
bind | split-window -h
bind V split-window -h
bind v split-window -h
# =============================================================================
# PANE NAVIGATION
# =============================================================================
unbind h
unbind l
bind -r h select-pane -L\; refresh-client -S
bind -r j select-pane -D\; refresh-client -S
bind -r k select-pane -U\; refresh-client -S
bind -r l select-pane -R\; refresh-client -S
# =============================================================================
# PANE MANIPULATION
# =============================================================================
bind L swap-pane -D
bind H swap-pane -U
bind b break-pane
bind -r C-j swap-pane -D
bind -r C-k swap-pane -U
# =============================================================================
# PANE JOINING (to specific windows)
# =============================================================================
bind M-q join-pane -t :1
bind M-w join-pane -t :2
bind M-e join-pane -t :3
bind M-r join-pane -t :4
bind M-t join-pane -t :5
bind M-y join-pane -t :6
bind M-u join-pane -t :7
bind M-u join-pane -t :8
bind M-o join-pane -t :9
bind M-p join-pane -t :0
# =============================================================================
# WINDOW NAVIGATION
# =============================================================================
bind -r C-n next-window
bind -r C-p previous-window
unbind '"'
bind '"' choose-window
# =============================================================================
# WINDOW/SESSION MANAGEMENT
# =============================================================================
unbind ,
bind A command-prompt "rename-window %%"
bind K kill-session
bind N neww \; splitw -d
# =============================================================================
# LAYOUT MANAGEMENT
# =============================================================================
unbind o
bind o select-layout "active-only"
# =============================================================================
# ACTIVITY MONITORING
# =============================================================================
bind m setw monitor-activity
setw -g monitor-activity on
# =============================================================================
# MISCELLANEOUS BINDINGS
# =============================================================================
bind r source-file ~/.tmux.conf
bind C-r refresh-client
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment