O mais perto que cheguei foi uma função do tmux que escrevi. Eu normalmente saio do shell apertando Ctrl + D , então eu programo tmux
para sair e alternar as sessões quando pressiono [PREFIX]
Ctrl + D . Coloque o seguinte no seu .tmux.conf
:
bind C-d run-shell " \
if [ #{session_windows} -eq 1 ] && \
[ #{window_panes} -eq 1 ] && \
[ #{pane_current_command} = 'bash' ]; then \
if [ \$(tmux list-sessions | wc -l) -ge 2 ]; then \
tmux switch-client -ln; \
fi; tmux kill-session -t \"#S\"; \
else \
tmux display-message \"Ignoring kill session...\"; \
fi; \
"
Pressione [PREFIX]
Ctrl + D e saia da sessão atual se (e somente se) ela contiver apenas um shell que não esteja executando nenhum outro comando. Mudará para outra sessão, se possível. Eu uso o bash shell, então você pode precisar alterá-lo para algo que você está usando.
ps: caso seja importante, estou usando o tmux 1.9a.