I use tmuxinator to manage all of my tmux sessions.
While, I could write tmux scripts for everything the yaml format does just about everything I need.
I treat a session as a project, for example mux dotfiles will open a tmux session, cd into the correct directory, and setup and panes I want when working with my config, just one. On a customer project I often have one window for vim, then another window for the server to run, psql, and any additional services I need.
I have also found, prefix-s to be very helpful to switch between projects very quickly.
While, I could write tmux scripts for everything the yaml format does just about everything I need.
I treat a session as a project, for example mux dotfiles will open a tmux session, cd into the correct directory, and setup and panes I want when working with my config, just one. On a customer project I often have one window for vim, then another window for the server to run, psql, and any additional services I need.
I have also found, prefix-s to be very helpful to switch between projects very quickly.