水島雄太のブログ

個人的かつ雑多なブログです。

tmuxで新規ウィンドウを作成した際のデフォルト名を設定する

概要

tmuxreattach-to-user-namespace' した際、新規ウィンドウ名が全て、reattach-to-user-namespace' に設定されてしまいました。

消去などでリネームの手間がかかるため、任意のデフォルト名を設定する方法を調査しました。

設定方法

stackoverflow.com

ほぼやりたいことが、 Stackoverflow で書かれていました。

何通りかやり方があるのですが、今回は、 .zshrc の末尾に、 printf '\033kdefault\033\\' を追記することで解決しました。

何をしているか

これは何をしているかというと、tmux では新規ウィンドウを作成した際に、シェルを起動するため、zshの場合は、$HOME/.zshrc を読み込みに行きます。 そこでシェルのprintf 関数で ttyエスケープシーケンスを送っています。

\033kESC [ に相当し、 非表示文字のエスケープシーケンスの始まり、 \033ESC ] に相当し、非表示文字のエスケープシーケンスの終わりを現します。

これらのシーケンスをtmuxが解釈し、ウィンドウ名に設定しています。