A few bits on tmux
I don’t remember when I started using tmux, but, the move from screen to tmux was quick. I have it installed on all of my systems and VMs. Though I never bothered to have a proper configuration file, it also means that I never used any plugin or other particular configuration. I don’t prefer to use plugins for command line applications much (for example in Vim), as not all systems will have those plugins installed.
While working on OSCP labs, I wished for a way to keep my tmux sessions logged, as that helps to create the report or remember the process in the future. Later, I found IPPSec has a video on their usage of tmux, which includes a plugin to log tmux sessions. I decided to give it a go and created my tmux.conf based on the same.
$ cat ~/.tmux.conf
# Remap prefix to screens
set -g prefix C-a
bind C-a send-prefix
unbind C-b
# Other values
set -g history-limit 100000
set -g allow-rename off
# Join windows
bind-key j command-prompt -p "Join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "Send pane to:" "join-pane -t '%%'"
# Search mode VI
set-window-option -g mode-keys vi
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
# git clone https://github.com/tmux-plugins/tmux-logging
run-shell /opt/tmux-logging/logging.tmux
Following IPPSec, I have also converted the prefix key to Ctrl+a. This change
helps to use another tmux in a remote system, where the default Ctrl+b works
as the prefix key. I have also moved the default search to vi
mode. You can
start selecting text by pressing the spacebar, and then press y
to copy text
to the primary system clipboard, and helps to copy text easily to any other
GUI application. This feature requires xclip
tool from the system packages.
I have also cloned the
tmux-logging repository under
/opt
.
On Twitter, Justin Garrison pointed me to his super amazing awesome-tmux repository, which contains many many useful resources on tmux. I spent a good part of reading The Tao of tmux.
Now, my tmux is working the way I want on my Linux systems and also on the FreeBSD laptop (where I am writing this blog post). Btw, if you search tmux cheatsheet on https://duckduckgo.com it provides a lovely view of the cheat sheet in the result page.