TMUX
tmux
is a terminal multiplexer that lets you run, organize, and manage multiple terminal sessions from a single window. It allows you to split panes, detach and reattach to sessions, and keep long-running processes alive even after disconnecting. For anyone with a terminal-centric workflow, tmux is essential: it streamlines multitasking, preserves your environment across sessions, and turns the command line into a powerful, persistent workspace.
🧩 TPM Plugins
catppuccin/tmux#v2.1.2
christoomey/vim-tmux-navigator
sainnhe/tmux-fzf
tmux-plugins/tmux-continuum
tmux-plugins/tmux-copycat
tmux-plugins/tmux-fpp
tmux-plugins/tmux-open
tmux-plugins/tmux-resurrect
tmux-plugins/tmux-sensible
tmux-plugins/tmux-yank
tmux-plugins/tpm
wfxr/tmux-fzf-url
⚙️ Configurations
action | flag | target | |
---|---|---|---|
set | -g | mouse | on |
set | -g | base-index | 1 |
set | -g | pane-base-index | 1 |
set | -g | status-position | top |
set | -g | visual-activity | off |
set | -g | default-terminal | "tmux-256color" |
set | -g | detach-on-destroy | off |
set | -gq | allow-passthrough | on |
set | -g | status-left | "" |
set | -g | status-left-length | 100 |
set | -g | status-right-length | 100 |
set | -g | status-right | "" |
set | -g | status-right | "#[bg=#{@thm_mantle},fg=#{@thm_yellow}]#{?window_zoomed_flag, |
set | -ag | status-right | "#{E:@catppuccin_status_application}" |
set | -ag | status-right | "#{E:@catppuccin_status_session}" |
set | -wg | automatic-rename | on |
set | -g | automatic-rename-format | '' |
set | -g | window-status-separator | '' |
set | -g | status-justify | 'left' |
set-environment | -g | PATH | "$PATH" |
set-option | -g | default-shell | /bin/zsh |
set-option | -g | renumber-windows | on |
set-option | -wg | popup-style | bg=default |
set-window-option | -g | pane-base-index | 1 |
set-window-option | -g | mode-keys | vi |
⌨️ Keybindings
Keybinding (<C-b> + ) | action | arguments |
---|---|---|
C-z | resize-pane | -Z |
w | run-shell | -b "~/.tmux/plugins/tmux-fzf/scripts/window.sh switch" |
s | run-shell | -b "~/.tmux/plugins/tmux-fzf/scripts/session.sh switch" |
O | run-shell | "~/.config/scripts/fzf-bookmarks.sh > /dev/null 2>&1 &" # discard output after selecting |
S | run-shell | "~/.config/scripts/fzf-search.sh > /dev/null 2>&1 &" |
a | run-shell | "~/.config/scripts/fzf-alias.sh > /dev/null 2>&1 &" |
j | run-shell | "~/.config/scripts/tmux-popup.sh" |
i | set | status |
B | switch-client | -l |
r | source-file | ~/.tmux.conf \; display-message "~/.tmux.conf reloaded" |
g | display-popup | -E -xC -yC -w 80% -h 80% -d "#{pane_current_path}" "~/.config/scripts/launch-lazygit.sh" |
e | display-popup | -E -xC -yC -w 80% -h 80% -d "#{pane_current_path}" "open ." |
D | display-popup | -E -xC -yC -w 80% -h 80% -d "#{pane_current_path}" lazydocker |
% | split-window | -h -c "#{pane_current_path}" |
'"' | split-window | -v -c "#{pane_current_path}" |