Created
July 18, 2025 15:53
-
-
Save andynu/31d6aa0ff9b82ec55b6bdfd5026ad963 to your computer and use it in GitHub Desktop.
tmux.conf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ============================================================================= | |
# 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