tmux
Plugins
There’s a script that allows tmux
to support and load plugins (which are, of
course, just managed scripts themselves.) tmux Plugin
Manager
New Detached Session
To start a new detached session (e.g., on reboot):
tmux new-session -d "command"
Replacements
Some commands can have expansions in them. These commands include:
pipe-pane
status-left
Variables can be replaced:
string will be passed through strftime(3) before being used.
string may contain any of the following special character sequences:
#(shell-command) -- First line of the command's output
#[attributes] -- Colour or attribute change
#H -- Hostname of local host
#h -- Hostname of local host without the domain name
#F -- Current window flag
#I -- Current window index
#D -- Current pane unique identifier
#P -- Current pane index
#S -- Session name
#T -- Current pane title
#W -- Current window name
## -- A literal `#'
The #(shell-command) form executes `shell-command' and inserts the first line of its output.
Shared Session
If both clients are to be run by the same user on the same machine, this is simple:
tmux new-session -s <session_name>
tmux attach-session -t <session_name>
From different users, it gets a little more complex. Anyone in a shared group will be able to access the session.
tmux -S /tmp/shared-session new-session -s <session_name>
chgrp <common_group> /tmp/shared-session
tmux -S /tmp/shared-session attach -t <session_name>
The second session can be readonly by providing the -r
flag when attaching to
the session.
Session Groups
tmux can have multiple sessions pointing to the same session group. Normally when you attach to an existing session, you get the same view in the exact same place. Multiple sessions to a session group gives you different views of the same windows, so you can put them next to each other or use the various windows from multiple terminal emulators.
Start a session, then attach a new session to the group:
tmux new-session -s <session_name>
tmux new-session -t <session_name>
Note that this is similar to attaching an existing session, but the
new-session
command is used with the target of the existing session.
Logging
Module
See the tmux-logging module.
Saving Current Buffer
Press ^B, :
to get into the tmux
command line.
capture-pane -S - ; save-buffer OUTFILE
Updating SSH-Agent
For a remote SSH agent updater:
Basically update a symlink on SSH then use the symlink socket:
~/.ssh/rc
:
#!/bin/sh
if [ ! -S ~/.ssh/ssh_auth_sock ] && [ -S "$SSH_AUTH_SOCK" ]; then
ln -sf $SSH_AUTH_SOCK ~/.ssh/ssh_auth_sock
fi
~/.tmux.conf
:
set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock