Not the GP but I also use tmux (or screen in a pinch) for almost any SSH session, if only as insurance against dropped connections. I occasionally use it for local terminals if there is a chance I might want a command to outlive the current graphical session or migrate to SSH later.
Occasionally it’s nice to be able to control the session from the command line, e.g. splitting a window from a script. I’ve also noticed that wrapping a program in tmux can avoid slowdowns when a command generates a lot of output, depending on the terminal emulator. Some emulators will try to render every update even if it means blocking the output from the program for the GUI to catch up, rather than just updating the state of the terminal in memory and rendering the latest version.
Examples of local commands I might run in
tmux
could include anything long-running which is started from the command line. A virtual machine (qemu
), perhaps, or a video encode (ffmpeg
). Then if I need to log out or restart my GUI session for any reason—or something goes wrong with the session manager—it won’t take the long-running process with it. While the same could be done withnohup
orsystemd-run
, usingtmux
allows me to interact with the process after it’s started.I also have systems which are accessed both locally and remotely, so sometimes (not often) I’ll start a program on a local terminal through
tmux
so I can later interact with it through SSH without resorting tox11vnc
.