背景
ByobuはUbuntuに初期状態でinstallされていて、設定ファイルを編集するようなカスタマイズを全く必要とせずに、terminalのタブ・分割・セッション保持等を実現出来て便利なツールと言える。
課題
自分はTerminal上ではあまり作業したくない派なので、本当にbasicな使い方しかしていないが、それでもどうしても気になる点があった。Window 0(左端の最初のタブ)だけ表示がおかしいのだ。
他のタブと同様の振る舞いを期待するなら、0:-*
となっている部分は0:bash*
と表示して欲しい。表示内容は実行コマンドによって切り替わるが、window 0は何を実行しても全く変化がない。(もっともbashという表示が有用なのかと言われると疑問だが…)
Webで調べてみたところ、backendのtmuxの挙動との兼ね合いで修正しようとすると弊害があるため直せないbugらしく、長いことそのままのようだ。このままだと微妙に使いにくいし、他のタブと揃っていないと美しくないので直したい。
ソリューション
色々試行錯誤した結果、一度window名をemptyにして、automatic-renameを再度onにすれば良いことが分かった。
10行未満のコードをわざわざGitHubにレポジトリを作って公開してみたが、実際にやっていることは単純。bash or zshが起動したときに、親processがtmuxだったら、「一度window名をemptyにして、automatic-renameを再度onにする」ということをしているだけ。
if ps -p $PPID -o comm= | grep -q 'tmux'; then
tmux rename-window ""
tmux set-window-option automatic-rename on
fi
詳細な使い方はbyobu-autorename-fixのREADMEに記載しているのでそちらをご覧頂きたい。
結末
上記のworkaroundはbyobuを使いやすくカスタマイズしたいという意図で色々試していた途中で作成されたもの。しかし、byobuはカスタマイズ性に乏しく、細かなカスタマイズにはtmuxの設定を変更する必要があり、tmuxとbyobuの間でconflictが発生することもあり、期待通りカスタマイズは出来なかった。
そんな折、GitHubでStarが沢山付いているtmuxのconfigurationを使うと良いという話をWebで見かけた。0からカスタマイズするのが難しいという理由でtmuxの代わりにbyobuを使っていたが、gpakosz/.tmuxをベースにしたところ自分のやりたいことの大部分が出来てしまった。
byobuは卒業した。Workaroundはもう、使っていない。