複数のtmuxウィンドウで作業をしている時に、各ウィンドウの区別をつけるため、作業始めにウィンドウに名前をつけておくのだが、面倒なので自動化する。
ソースコード
.zshrc
add-zsh-hook precmd precmd_tmux_win
precmd_tmux_win() {
[ -n "$TMUX" ] && \
tmux rename-window "$(basename $(git rev-parse --show-toplevel 2>/dev/null || echo "${PWD/#$HOME/~}"))"
}
挙動
作業ディレクトリが変更されると以下の命名規則に従ってウィンドウをリネーム
- Git管理下のディレクトリであれば、レポジトリ名(厳密にはGitルートのディレクトリ名)を表示
- Git管理下のディレクトリでなければディレクトリ名を表示
- 手動で命名したラベルも上書きしてしまいます。
TODO
-
解決ghq look
でディレクトリ移動した際に発火しないですね。何か対策考える。
追記
もうあった!!!