Skip to content

Instantly share code, notes, and snippets.

@spicycode
Created September 20, 2011 16:43
Show Gist options
  • Save spicycode/1229612 to your computer and use it in GitHub Desktop.
Save spicycode/1229612 to your computer and use it in GitHub Desktop.
The best and greatest tmux.conf ever
# 0 is too far from ` ;)
set -g base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000
setw -g mode-keys vi
setw -g mode-mouse on
setw -g monitor-activity on
bind-key v split-window -h
bind-key s split-window -v
bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5
bind-key M-j resize-pane -D
bind-key M-k resize-pane -U
bind-key M-h resize-pane -L
bind-key M-l resize-pane -R
# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# No delay for escape key press
set -sg escape-time 0
# Reload tmux config
bind r source-file ~/.tmux.conf
# THEME
set -g status-bg black
set -g status-fg white
set -g window-status-current-bg white
set -g window-status-current-fg black
set -g window-status-current-attr bold
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=green](#S) #(whoami)'
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'
@h4n0sh1
Copy link

h4n0sh1 commented Jan 11, 2021

Posted 9 years ago, and still the best game in town !

This conf. is almost perfect, it only needs the copy/paste feature, so for anybody reading this hopefully this spares you some time searching :

# Enable mouse & Copy/Paste - Requirements: xclip  
set -g mouse on 
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
bind -T copy-mode-vi    C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-vi    C-WheelDownPane send-keys -X halfpage-down
bind -T copy-mode-emacs C-WheelUpPane   send-keys -X halfpage-up
bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down
# # Use vim keybindings in copy mode
setw -g mode-keys vi
# Update default binding of `Enter` to also use copy-pipe
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"

Source : https://unix.stackexchange.com/questions/318281/how-to-copy-and-paste-with-a-mouse-with-tmux

@alfiedotwtf
Copy link

alfiedotwtf commented Mar 29, 2021

I've been using tmux for about 12 years, and I was today years old that I even thought to remap selecting panes. Omg this gist is amazing.

@bartoszek
Copy link

bartoszek commented May 22, 2021

Pretty nice, but rescaling with hjkl is suboptimal.
My proposition: use -r C-{hjkl} to allow resizing by holding ctrl and pressing b+jjj (-r indicate repeatable key )

bind-key -r C-j resize-pane -D
bind-key -r C-k resize-pane -U
bind-key -r C-h resize-pane -L
bind-key -r C-l resize-pane -R

Also adding -r to the walk bindings improves my work routine a lot. 😏

@SiddharthShyniben
Copy link

The only problem I had was that the left and right arrow keys send b and f respectively, so I did this:

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-b select-pane -L
bind -n M-f select-pane -R
# ....

This might fix what @schadha17 and @IanVaughan are facing?

@dedeibel
Copy link

dedeibel commented Oct 4, 2021

Very cool. How about set -g mouse-select-pane to allow selecting panes using the mouse? (1.8)

@dodona2
Copy link

dodona2 commented Oct 5, 2021

Very cool. How about set -g mouse-select-pane to allow selecting panes using the mouse? (1.8)
works in xterm, however not in linux consoles

@dedeibel
Copy link

dedeibel commented Oct 5, 2021

Very cool. How about set -g mouse-select-pane to allow selecting panes using the mouse? (1.8)

works in xterm, however not in linux consoles

Okay, thanks for the info. That was not in my focus.

@alfiedotwtf
Copy link

Sadly I found mouse-select-pane broke my ability to copy/paste with my urxvt+Vim combo

@amirgon
Copy link

amirgon commented Jan 26, 2022

Incompatible with tmux >= 2.9 (invalid option errors).
Related: tmux/tmux#1689

@kevomac12
Copy link

Hey guys, I'm back in Linux after 10+ yrs and this site...Great stuff! I need help w/TMUX, as it has really helped out w/SSD testing and debug, even though I'd only use it occasionally. But now I'm at Ricoh, and I've got 20+ dev machines to use. I need help with where to place my tmux.conf or how to set environment (Linux) so I can source (source ~/.tmux.conf) when I've done mods to that file...Please can you help??

@lcpichette
Copy link

invalid option: mode-mouse
invalid option: window-status-current-bg
invalid option: window-status-current-fg
invalid option: window-status-current-attr

Looks like some of these option names have changed over time. For example, window-status-current-bg looks like:

set-window-option -g window-status-current-style bg=default

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment