Tmux Basics
My config
set -g mouse on
# reload
bind r source-file ~/.tmux.conf
# vi copy mode
bind v copy-mode
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel
unbind P
bind p paste-buffer
# remap prefix to alt ;
unbind C-b
set-option -g prefix M-\;
bind M-\; send-prefix
# split panes using | and -
bind H split-window -h
bind V split-window -v
unbind '"'
unbind %
# switch panes using alt-hjkl
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-k select-pane -U
bind -n M-j select-pane -D
# Design
set -g status-interval 2
set -g status-justify centre
set -g status-left ' #h '
set -g status-right ' %Y-%m-%d %H:%M '
Cheat Sheet
Choosing sessions, windows and panes
Items in the tree are tagged by pressing t
and untagged by pressing t
again. Tagged items are shown in bold and with *
after their name. All tagged items may be untagged by pressing T
. Tagged items may be killed together by pressing X
, or a command applied to them all by pressing :
for a prompt.
Each item in the tree has as shortcut key in brackets at the start of the line. Pressing this key will immediately choose that item (as if it had been selected and Enter
pressed). The first ten items are keys 0
to 9
and after that keys M-a
to M-z
are used.
This is a list of the keys available in tree mode without pressing the prefix key:
Formats - used in status bar etc
https://man.openbsd.org/tmux.1#FORMATS
Key | Function |
---|---|
Enter | Change the attached session, current window or active pane |
Up | Select previous item |
Down | Select next item |
Right | Expand item |
Left | Collapse item |
x | Kill selected item |
X | Kill tagged items |
< | Scroll preview left |
> | Scroll preview right |
C-s | Search by name |
n | Repeat last search |
t | Toggle if item is tagged |
T | Tag no items |
C-t | Tag all items |
: | Prompt for a command to run for the selected item or each tagged item |
O | Change sort field |
r | Reverse sort order |
v | Toggle preview |
q | Exit tree mode |
Defaults
key combo | action |
---|---|
Ctrl b , c |
Create new window |
Ctrl b , d |
Detach from session |
Command | Action |
---|---|
tmux new -t weechat |
create a new session called weechat |
tmux attach -t weechat |
attach (resume) a session called weechat |
Splitting
split-window [-bdfhIvPZ] [-c start-directory] [-e environment] [-l size] [-t target-pane] [shell-command] [-F format]
(alias: splitw
)
Create a new pane by splitting target-pane: -h
does a horizontal split and -v
a vertical split; if neither is specified, -v
is assumed. […] The -b
option causes the new pane to be created to the left of or above target-pane. The -f
option creates a new pane spanning the full window height (with -h
) or full window width (with -v
), instead of splitting the active pane. […]
Aliases
ctrl-b + %
Vertical
ctrl-b + "
Horizontal
You can also make multiple splits then use ctrl-b + A[1-5]
to use pre-made layouts
Scrolling
ctrl-b + [
then arrows
or
ctrl-b
+ :set-window-option mode-keys vi
and
shift-j
and shift-k
for pages or just j
and k
for lines
Key mappings
https://unix.stackexchange.com/questions/140007/what-are-valid-keys-for-tmux
Available Keys
Look at man tmux
, search / for KEY BINDINGS
:
tmux allows a command to be bound to most keys, with or without a prefix key.
When specifying keys, most represent themselves (for example ‘A’ to ‘Z’). Ctrl keys may be prefixed with ‘C-’ or ‘^’, and Alt (meta) with ‘M-’.
In addition, the following special key names are accepted:
Up, Down, Left, Right, BSpace, BTab, DC (Delete), End, Enter, Escape, F1 to F20, Home, IC (Insert), NPage/PageDown/PgDn, PPage/PageUp/PgUp, Space, and Tab. Note that to bind the ‘"’ or ‘'’ keys, quotation marks are necessary [...]
M-S-Left should be Alt+Shift+Left for example.
List all bound keys
To list all key bindings, simply press Ctrl-b then ? while in a tmux
session.
This is also documented in man tmux
in section EXAMPLES
:
Typing ‘C-b ?’ lists the current key bindings in the current window; up and down may be used to navigate the list or ‘q’ to exit from it.
You can also list all key-bindings via tmux list-keys
. If you want to check for already set keys, you can grep
it's output to check, if it's already set.
Research
To find more via Google, search for Section names in man tmux
- just type in tmux default key bindings
for example :). But often man tmux
is sufficient.
This site is a very good documentation about tmux
and pops up, if you search for said string in Google.
Arch wiki is always good, too.