Created
April 15, 2026 10:50
-
-
Save tarasyarema/a36eeb4b53a5a4256e6583f0c3807ebc 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
| unbind C-b | |
| set-option -g prefix C-a | |
| bind-key C-a send-prefix | |
| # pi coding agent | |
| set -g extended-keys on | |
| set -g extended-keys-format csi-u | |
| # Misc configurations | |
| # Use a stable terminal type rather than inheriting $TERM at server-start time | |
| # (which may be unset or wrong, causing dimension detection issues) | |
| set -g default-terminal "tmux-256color" | |
| set -ag terminal-overrides ",xterm-256color:Tc" | |
| set -ag terminal-overrides ",tmux-256color:Tc" | |
| # Propagate terminal dimensions into the environment of new panes. | |
| # Without this, subprocesses that don't handle SIGWINCH in time (e.g. Claude Code | |
| # on startup) fall back to 0x0 or stale dimensions. | |
| set -g update-environment "COLUMNS LINES TERM TERM_PROGRAM COLORTERM" | |
| set -g allow-passthrough all | |
| set -g xterm-keys on | |
| set -s escape-time 10 # faster command sequences | |
| set -sg repeat-time 600 # increase repeat timeout | |
| set -s focus-events on | |
| set -q -g status-utf8 on # expect UTF-8 (tmux < 2.2) | |
| setw -q -g utf8 on | |
| # Reload tmux configuration | |
| bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced' | |
| # Mouse control | |
| set -g mouse on | |
| # Set vim keybindings | |
| setw -g mode-keys vi | |
| # Selection shit | |
| bind-key -T copy-mode-vi v send-keys -X begin-selection | |
| bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" | |
| # Enable activity alerts | |
| setw -g monitor-activity on | |
| set -g visual-activity on | |
| # Slip commands | |
| bind - split-window -v | |
| bind _ split-window -h | |
| unbind '"' | |
| unbind % | |
| # Pane navigation | |
| bind -r h select-pane -L # move left | |
| bind -r j select-pane -D # move down | |
| bind -r k select-pane -U # move up | |
| bind -r l select-pane -R # move right | |
| bind > swap-pane -D # swap current pane with the next one | |
| bind < swap-pane -U # swap current pane with the previous one | |
| # Pane resizing | |
| bind -r H resize-pane -L 2 | |
| bind -r J resize-pane -D 2 | |
| bind -r K resize-pane -U 3 | |
| bind -r L resize-pane -R 2 | |
| # Window navigation | |
| unbind n | |
| unbind p | |
| bind -r C-h previous-window # select previous window | |
| bind -r C-l next-window # select next window | |
| bind Tab last-window # move to last active window | |
| # Plugin shit | |
| set -g @plugin 'tmux-plugins/tpm' | |
| set -g @plugin 'tmux-plugins/tmux-yank' | |
| set -g @plugin 'tmux-plugins/tmux-resurrect' | |
| set -g @plugin 'tmux-plugins/tmux-continuum' | |
| set -g @plugin 'tmux-plugins/tmux-open' | |
| run -b '~/.tmux/plugins/tpm/tpm' | |
| set -g @continuum-restore 'on' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment