Skip to content

Instantly share code, notes, and snippets.

@bitsurgeon
Last active November 4, 2020 11:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitsurgeon/15418abd2e99e52619b96f2d48e29b32 to your computer and use it in GitHub Desktop.
Save bitsurgeon/15418abd2e99e52619b96f2d48e29b32 to your computer and use it in GitHub Desktop.
frequent tmux operations

Frequent Operations

help

default prefix key

  • C-b

inline help

  • C-b ?

list bound key and command

  • tmux list-keys

list command and arguments

  • tmux list-commands

list resources

  • tmux info

sessions

start new session

  • tmux

list running sessions

  • tmux ls

attach to sessions

  • tmux attach -t <session id>

start new session with a name

  • tmux new -s <session name>

switch sessions

  • tmux switch -t <session name>

rename existing session

  • tmux rename-session -t <session id> <session name>

detach sessions

  • detach current session: C-b d
  • detach with options: C-b D

windows

creating windows

  • C-b c

rename current windows

  • C-b ,

navigating windows

  • previous: C-b p
  • next: C-b n
  • directly: C-b <number>

panes

splitting panes

  • horizontal: C-b %
  • vertical: C-b "

navigating panes

  • C-b <arrow key>

full screen

  • C-b z

resize panes

  • C-b C-<arrow key>

swap panes

  • C-b {
  • C-b }

closing panes

  • exit
  • Ctrl-d

customizing

configuration file

  • system: /etc/tmux.conf
  • user: ~/.tmux.conf
  • any: tmux -f <path to .conf file>

change prefix key

# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

change pane splitting keys

# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

reload config file

# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf

fast pane switching

# switch panes using Alt-arrow without prefix
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

mouse mode

  • this might mess a little bit with simply selecting text in terminal using the mouse
# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse-select-window on
set -g mouse-select-pane on
set -g mouse-resize-pane on

## OR

# Enable mouse mode (tmux 2.1 and above)
set -g mouse on

stop renaming windows automatically

# don't rename windows automatically
set-option -g allow-rename off

quick pan cycling

# quick pane cycling
unbind ^A
bind ^A select-pane -t :.+

change the look of tmux

# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none

#  modes
setw -g clock-mode-colour colour5
setw -g mode-style 'fg=colour1 bg=colour18 bold'

# panes
set -g pane-border-style 'fg=colour19 bg=colour0'
set -g pane-active-border-style 'bg=colour0 fg=colour9'

# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-style 'bg=colour18 fg=colour137 dim'
set -g status-left ''
set -g status-right '#[fg=colour233,bg=colour19] %d/%m #[fg=colour233,bg=colour8] %H:%M:%S '
set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-style 'fg=colour1 bg=colour19 bold'
setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F '

setw -g window-status-style 'fg=colour9 bg=colour18'
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '

setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold'

# messages
set -g message-style 'fg=colour232 bg=colour16 bold'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment