This is my ~/bin/bootstrap-tmux script. 

Maybe it can inspire you to share some of your tmux config snippets or
tricks? I'd also be interested if you have suggestions for improvements
to my script.


#!/bin/sh
#
# Bootstraps tmux to 80%; saves a bit of typing and thinking right after
# reboots when I just want to get back to work.

set -e

# If I specify ~/work it messes up the tmux config, so cd to home first
cd $HOME
WORKDIR="projects/* business/. work wrk 3rdparty/*"

# Build tmux sessions and windows based on the my project directories. These
# almost always reflect what I am working on anyway.
for wpath in $WORKDIR; do
        if [ -d $wpath ]; then
                session_name=$(dirname $wpath | sed 's/\./_/g')
                wname=$(basename $wpath)
                if $(tmux has-session -t $session_name); then
                        tmux new-window -d -t $session_name -c $wpath -n $wname
                else
                        tmux new-session -P -d -s $session_name -c $wpath -n 
$wname
                fi
                # Populate the session with windows, etc per project
                if [ -f $wpath/.tmux.conf.local ]; then
                        tmux source-file $wpath/.tmux.conf.local
                fi
        fi
done

if [ -d ~/Business/Mail -o -d ~/Personal/Mail ]; then
        tmux new-session -P -d -s email -n neomutt neomutt
fi

WORKDIR="/usr/src /usr/ports /usr/ports/mystuff /usr/xenocara"

for wpath in $WORKDIR; do
        # Are there signs of a usable OpenBSD src checkout?
        if [ -w $wpath/Makefile ]; then
                wname=$(basename $wpath)
                if $(tmux has-session -t openbsd); then
                        tmux new-window -P -d -t openbsd -c $wpath -n $wname
                else
                        tmux new-session -P -d -s openbsd -c $wpath -n $wname
                fi
                # Populate the session with windows, etc per project
                if [ -f $wpath/.tmux.conf.local ]; then
                        tmux source-file $wpath/.tmux.conf.local
                fi
        fi
done

Reply via email to