tmuxで指定したwindow/paneから始める方法 [再起動も安心]

PCの再起動後にTmuxのwindowやpaneを自動的にある所定のものにしたい。tmux-resurrecttmux-continuumを試した試したがうまい具合にシャットダウン前の状態にしてくれないケースがあったので、それなら常に同じ状態からスタートした方が効率が良い気がしてきたので、そのような運用にしてみる。

tmuxのwindow作成などはtmuxコマンドから呼べるので設定ファイルを書くことができる。starttmux.shというスクリプトを作ってこれを.bashrcから呼べば良い。

session="work"

tmux has-session -t $session 2>/dev/null
if [ "$?" -eq 1 ] ; then
  # set up tmux
  tmux start-server

  # create a new tmux session, starting vim from a saved session in the new window
  tmux new-session -d -s $session

  # Select pane 1, set dir to api, run vim
  tmux selectp -t 1
  tmux send-keys "cd ~/git/Gauss; rails s" C-m

  # Split pane 1 horizontal by 65%, start redis-server
  tmux splitw -v -p 50
  tmux send-keys "cd ~/git/Gauss; rails c" C-m

  # create a new windows
  tmux new-window -t $session:1
  tmux send-keys -t $session:1 "cd ~/git/Gauss; vim -S $HOME/.vim/sessions/gauss.vim" C-m

  tmux new-window -t $session:2
  tmux send-keys -t $session:2 "cd ~/git/Gauss" C-m

else
  echo "session found. connecting..."
fi


# return to main vim window
tmux select-window -t $session:2

# Finished setup, attach to the tmux session!
tmux attach-session -t $session

*C-mはtmuxでの改行

でこれを.bashrcの末尾追加すれれば毎回同じtmuxからスタートできる。

# attach automatically when it's opened
[ -z "$TMUX" ] && . "$HOME/starttmux.sh"

Related Posts