Skip to content

Instantly share code, notes, and snippets.

@AlexZeitler
Created January 24, 2026 12:02
Show Gist options
  • Select an option

  • Save AlexZeitler/71705526091f41f459b97235e3534d58 to your computer and use it in GitHub Desktop.

Select an option

Save AlexZeitler/71705526091f41f459b97235e3534d58 to your computer and use it in GitHub Desktop.
tmux config
# /home/terrywang/.tmux.conf
# Based on tmux book written by Brian P. Hogan
# c-a o to switch to another panel
# c-d to close shell
# c-a ! to close panel
# c-a w to list windows
# c-a " split pane horizontally
# c-a % split pane vertically
# Setting the prefix from C-b to C-a
# set -g prefix C-a
# Free the original Ctrl-b prefix keybinding
# unbind C-b
# Setting the delay between prefix and command
set -s escape-time 1
# Ensure that we can send Ctrl-a to other apps
bind C-a send-prefix
# history buffer - max number of lines for each window
set -g history-limit 10000
# Set Terminal Emulator Titles - OFF by default
# set -g set-titles on
# Set the base index for windows to 1 instead of 0
set -g base-index 1
# Set the base index for panes to 1 instead of 0
setw -g pane-base-index 1
# Switch to last window
unbind l
bind-key C-a last-window
# unbind o
# bind-key C-a select-pane
# Reload the file with Prefix r
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# Splitting panes replace % and "
# bind | split-window -h
# bind - split-window -v
# moving between panes
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Quick pane selection
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# 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
# Mouse support
# setw -g mode-mouse on
# set -g mouse-select-pane off
# set -g mouse-resize-pane off
# set -g mouse-select-window off
# incompatible since tmux 2.1
set -g mouse on
# Set the default terminal mode to 256color mode
set -g default-terminal "screen-256color"
# Enable clipboard
set -as terminal-features ',xterm-256color:clipboard'
# Enable activity alerts
setw -g monitor-activity on
set -g visual-activity on
# tmux coloring
# Set the status line's colors
set -g status-fg white
set -g status-bg black
# Set the color of the window list
#setw -g window-status-fg cyan
#setw -g window-status-bg default
#setw -g window-status-attr dim
set-window-option -g window-status-style fg=cyan,bg=default,dim
# Set colors for the active window
set-window-option -g window-status-current-style fg=white,bg=red,bright
# Pane colors
set-option -g pane-border-style fg=green,bg=black
set-option -g pane-active-border-style fg=white,bg=green
# Command / message line
set-option -g message-style fg=white,bg=black,bright
# Status line left side
set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]W#I #[fg=cyan]P#P"
# No longer necessary since tmux 2.1
# set -g status-utf8 on
# Status line right side
# 15% | 25 Oct 14:50
set -g status-right "#[fg=cyan]%d %b %R #[fg=magenta]#H"
# Update the status bar every sixty seconds
set -g status-interval 60
# Center the window list
set -g status-justify centre
# Enable vi keys
setw -g mode-keys vi
# copy/paste using tmux-yank
# These bindings are for X Windows only. If you're using a different
# window system you have to replace the `xsel` commands with something
# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools
bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection"
bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
set -s default-terminal 'tmux-256color'
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @dracula-day-month true
set -g @dracula-show-fahrenheit false
set -g @dracula-show-left-icon window
set -g @dracula-show-powerline true
set -g @dracula-border-contrast true
set -g @dracula-show-location true
set -g @dracula-plugins "cpu-usage ram-usage git weather"
set -g @dracula-fixed-location "Karlsruhe"
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
set -g @plugin 'dracula/tmux'
set -g pane-border-format "#{pane_index} #{pane_title}"
set -g pane-border-status bottom
set -g set-clipboard on
name: SomeApp
root: ~/some-path/to/some-app
windows:
- app:
layout: main-vertical
panes:
- docker compose up -d && bin/dev
- editor:
layout: main-vertical
panes:
- nvim .
- shell:
layout: main-vertical
panes:
-
- claude:
layout: main-vertical
panes:
- claude
- pg:
layout: main-vertical
panes:
- sqlit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment