cd ~/documents/MUD/Discworld # No existing discworld session? Then create one if [[ ! $(tmux ls -F '#S') =~ discworld ]]; then # Flag that we've just created a session DISC_SESSION_CREATE=1 # Zero out log files to keep size down # rm logs/minimap.log && touch logs/minimap.log # rm logs/mapdoortext.log && touch logs/mapdoortext.log # rm logs/chat.log && touch logs/chat.log # Start a new tmux session named "discworld" tmux new-session -d -A -D -s discworld fi # If we're in TMUX, or we just created a new session, make a layout if [ -n "$TMUX" ] || [ "$DISC_SESSION_CREATE" = "1" ]; then # Kill any existing panes but the one we're "starting" in if in tmux already if [ -n "$TMUX" ]; then tmux kill-pane -a -t discworld:0.0 fi # Create the chat monitor window on top tmux split-window -v -b -l 4 tmux send-keys 'clear && tail -fs .5 logs/chat.log' 'C-m' # Did we ask for the full layout? if [[ $1 == "full" ]]; then # Horizontal split and load spottimers tmux select-pane -t discworld:0.0 tmux split-window -h -l 28 tmux send-keys './bin/dt' 'C-m' # Splice a section for group shield monitor tmux split-window -v -p 50 tmux send-keys './bin/grp' 'C-m' # Place the ASCII map at the bottom tmux split-window -v -p 50 tmux send-keys './bin/map' 'C-m' fi # Cut back to main window, vertical split for mapdoortext tmux select-pane -t discworld:0.0 tmux split-window -v -b -l 5 tmux send-keys './bin/mdt' 'C-m' # Select main pane again and load TinTin++ with our config tmux select-pane -t discworld:0.0 tmux send-keys 'clear && tt++ -G config.tin' 'C-m' fi if [ -z "$TMUX" ]; then echo "Not already in TMUX, so let's attach" # If we aren't already inside of TMUX, then attach to our session tmux -2 attach-session -t discworld -d fi