Tmux
Tmux is a terminal multiplexer. It enables a number of terminals to be created, accessed, and controlled from a single screen.
Tmux may be detached from a screen and continue running in the background, then later reattached.
Learn to use it, it will make life much easier.
Tmux Sessions
# Start a session
tmux
tmux new -s <name>
# Detach from a session
ctrl+B + D
# List tmux sessions
tmux ls
# Reattach to session
tmux a # most recent session
tmux a -t <name of session>
# Kill a session
tmux kill-session # most recent session
tmux kill-session -t <name of session>
# Kill all sessions
tmux kill-server
Ctrl+B is a Prefix Key.
Get list of all sessions and windows
Ctrl+B + W
Tmux copy mode
Update tmux conf file to enable more features
# Update the conf file
nano ~/.tmux.conf
# Write this in the file
set -g mouse on
setw -g mode-keys vi
Now just highlight anything with mouse, it will be copied to clipboard.
To avoid using mouse, follow these steps to copy text:
Enter copy mode
Ctrl+B + [
Use directional arrows to move to the text.
Press
Space Bar
to start copying.Once selected all text, hit
Enter
Press
Ctrl+B + ]
to paste.
Tmux Windows
Windows are like tabs within a Tmux session. Each window can host one or more panes.
# Create a new window
Ctrl+B + C
# Rename current window
Ctrl+B + ,
# Move sequentially between windows
Ctrl+B + N
# Move between windows
Ctrl+B + <window index>
# Kill the current window
Ctrl+B + &
Tmux Panes
Panes are subdivisions within a single Tmux window, allowing you to split the screen horizontally or vertically.
# Horizontal split terminal
Ctrl+B + %
# Vertical split terminal
Ctrl+B + "
# Switch between panes in terminal
Ctrl+B + <arrow key in direction to move>
# Change size of pane
Ctrl+B + press Ctrl + arrow key
# Use predefined layouts of panes
Ctrl+B + Alt + 0-5
# Kill the current pane
Ctrl+B + X
Ctrl + D
My Tmux Configuration
# Change bottom bar color
set -g status-bg green
# enable mouse usage in tmux
set -g mouse on
# Sync tmux and system clipboard
bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "xclip -selection clipboard -in"
# get some vim features
set-window-option -g mode-keys vi
# Open new window in the same directory as the current pane
bind c new-window -c "#{pane_current_path}"
# Horizontal split in current directory
bind '"' split-window -v -c "#{pane_current_path}"
# Vertical split in current directory
bind % split-window -h -c "#{pane_current_path}"
# Increase scrollback limit
set-option -g history-limit 1000
# Tmux logging plugin
set -g @plugin 'tmux-plugins/tmux-logging'
Last updated