tmux の自動起動周りに少し不満があって、 zshrc に以下の記述を追加しました。
# 初期に用意されているセッション
# "prefix -> (" or "prefix -> )" でセッション切り替え
TMUX_INITIAL_SESSIONS=(
"config"
"works"
"personal"
)
# 初期セッションが存在していなかったらバックグラウンドで作る
for tmux_session in ${TMUX_INITIAL_SESSIONS[@]}
do
if ! $(tmux has-session -t ${tmux_session} 2> /dev/null)
then
tmux new-session -d -s ${tmux_session}
fi
done
# tmux が起動中でなければ attach する
if [ -z "$TMUX" ]
then
tmux attach-session -t "${TMUX_INITIAL_SESSIONS[0]}"
else
fi
基本的に書いてある通りなのですが、 自分であらかじめ用意したいセッションを変数(TMUX_INITIAL_SESSIONS)に入れておきます。 別に他の名前でも良いです。
TMUX_INITIAL_SESSIONS=(
"mysession1"
"mysession2"
"mysession3"
)
シェルが立ち上がるたびに、そのセッションがなければバックグラウンドで作ります。
if ! $(tmux has-session -t ${tmux_session} 2> /dev/null)
then
tmux new-session -d -s ${tmux_session}
fi
これで常に TMUX_INITIAL_SESSIONS にある名前のセッションは存在していることになるので、 TMUX 変数に何らかセットされていない場合に限って attach すれば良いことになります。
この記事は書かれてから1年以上が経過しており、最新の情報とは異なる可能性があります