TITLE: tmux grouped sessions DATE: 2023-09-23 AUTHOR: John L. Godlee ==================================================================== I have two monitors at work. Normally I have a terminal running tmux open full screen on the right-hand monitor, in portrait, and use the left monitor in landscape for everything else. Occasionally however, I want to also have a terminal open on the left monitor, and to move windows easily between terminals. To make it easier to share windows across terminals, I have adjusted my tmux setup to take advantage of the grouped-sessions feature. At the bottom of my .tmux.conf I have this chunk, which starts a new session called "main", as a daemon. new-session -s main -d Then, at the bottom of my .bashrc I have this chunk. First it checks if tmux is already running (if [ -z "$TMUX" ]). Then if tmux isn't running, it creates a new session within the same group as session "main" (new-session -t main). It then sets the option destroy-unnattached, which removes clients when you detach from them, ensuring that the automatically created sessions don't pile up when they are detached from. if [ -z "$TMUX" ]; then /usr/local/bin/tmux new-session -t main \; set-option destroy-unattached fi The result is that when I open a terminal, tmux checks if the "main" session exists, creates it if it doesn't and attaches a client to that session. All sessions in the same group share the same set of windows, but you can move freely between windows in each session. {{< video src="/vid/tmux_sessions/tmux_sessions.mp4" >}}