hiro08gh

ソフトウェアに関すること

tmuxの環境構築をShell Scriptで自動化すると便利

こんにちはhiro08です。

tmuxで開発していると、自分の開発体制がテンプレート化してくると思います。しかし、ターミナルを立ち上げて、1からtmuxで開発環境を構築するのは大変ですよね。

そこで、Shell Scriptでtmuxの開発環境を自動化すると便利です。例えば、セッションを自動で作成したり、ウィンドウを自動で分割できます。

こちらがコマンドを入力して、一発で開発環境を整えてる画像です。非常に快適になりました。


環境構築するShell Scriptを書く

こちらが今回作成したShell Scriptの全体像です。
gist.github.com

ポイント

ここでは上記のコードに対するポイントを説明します。

セッションに名前をつけて作成

tmux new-session -d -s 'ide'
tmux attach -t ide

ウィンドウの分割

tmux split-window -v -p 30
tmux split-window -h -p 60
tmux split-window -h -p 50

こちらの画像のように、いい感じのウィンドウを分割してくれます。

引数によって処理を分岐

フロントエンドの開発やインフラにSSHするなど、ターミナルを使う用途は様々です。なので、引数によってセッションや画面分割する条件を分けています。

case $1 in
  "infra")
    tmux new-session -d -s 'infra'
    tmux attach -t server 
    tmux split-window -v -p 30
    tmux split-window -h -p 66
    tmux split-window -h -p 50
    tmux select-pane -t 1
    clear
    ;;
  "kill")
    tmux kill-server 
    clear
    ;;
  *)
    echo [ERROR] "$1"が見つかりません。
esac
セッションの削除

引数にkillを指定すると、セッションを削除することができます。

tmux kill-server 

Shell Scriptの実行方法

今回書いたShell Scriptの実行方法は下記の通りです。

$ chmod 755 ide.sh
$ sh ide.sh

aliasの設定

最後にpathが有効になってるフォルダにファイルを追加して、ideコマンドで実行できるようにaliasを貼ります。
.zshrc

alias ide="~/.scripts/ide.sh"