Tech Racho エンジニアの「?」を「!」に。
  • IT Tips

Windows Terminal+WSL tmux(byobu)環境でタスクバーの表示名を任意に設定する方法

morimorihoge です。涼しくなってきたと思ったら11月だし順当ではある。
今回は小粒ですが、Windows+Windows Terminal環境の効率化の話になります。

概要

デフォルト環境でWindows Terminalを使っていると、複数ウィンドウを開いていくとどのウィンドウがどの作業をしていたか分からなくなることがあります。
本記事ではWindows上の各ウィンドウのタイトル(タスクバー上での表示名)を任意に設定する方法を解説します。
これにより、多数のWindows Terminalを立ち上げていてもターミナルの見分けがつくようになります。

背景

Claude Codeに強依存する仕事のやり方に移行して4ヶ月ほどが立ちました。
これまで多くても3つくらいのプロジェクトを見るのが限界でしたが、Claude Codeにより「本件は一旦Claude Codeに調べさせておいて、その間に別のプロジェクトを見よう」という形で6とかそれ以上のプロジェクト(社内系のものも含む)を並行運用するようになっています。

僕はWindows + WSL2環境で、主にWindows Terminalを開発用ターミナル環境としており、各ターミナル上でtmuxを利用しています。
Claude Codeは渡すpromptによっては平気で数分待つようなことも多いため、並行して作業することが増えます。それだけならタブ化するのでも良いのですが、Claude Codeの作業中の内容を横目で見つつ「いや、その情報はXXにあるよ」とか「ローカルで直接実行せずにdocker composeを使って」といった指示を途中で差し込みたいことも多いため、タブ化して裏に隠してしまうのは微妙です。

結果としてPowerToysFancyZonesを良い感じに設定して、4kディスプレイ上でターミナルウィンドウを4つとか6つ並べて利用する形になります。

上記の例は1画面ですが、僕の場合はさらにディスプレイを並べて並行作業量を増やしています。現在4k + 4k + WQHD(Slack専用)の3枚。

各ターミナルウィンドウ内ではそれぞれ1つのtmux session(byobu)を立ち上げ、claude code及びプロジェクトの作業ディレクトリでの操作を複数のtmux windowを使って行う形で作業しています。ノリとしてはIDEAなどのプロジェクトウィンドウ1つを1つのターミナルウィンドウに集約させている感じでしょうか。
tmuxを使うことで任意で複数のshellを立ち上げたりできるのは便利ですよね。

問題

作業の並行性はディスプレイ枚数と解像度で殴ってなんとかするという方向で確保するのですが、それでもClaude Codeに出力させたレポートを閲覧したり、ソースコードを閲覧するのにVS CodeやIDEAを立ち上げて確認する時にはターミナルウィンドウを隠す形で上に別のアプリを開く形になります。
そこで厄介なのが、またターミナルに戻って作業しようとしたときに、どのウィンドウでどのプロジェクトの作業をしていたか思い出せなくなるということです。

タスクバーを見て切り替えようと思っても、全部「Ubuntu-24.04」とかになってて見分けが付かない 😇

ExplorerPatcherを使ってWin10風のUIを使っています

これが、担当プロジェクト数が少なければ画面上の配置とプロジェクトをマッピングするというのもできるのですが、僕の場合それでは足りない数あるので無理です。ちょいちょい新規のプロジェクト相談などもあるので、配置とプロジェクトのマッピングは現実的ではない。

解決案

というわけで、タスクバーのウィンドウタイトルに任意のプロジェクト名を付ければいいんじゃね?ということで対応したのが今回の対応になります。

対応完了すると、以下のようにタスクバー上でプロジェクト名が分かる様に閲覧できます。

なお、1ウィンドウ内でタブに並べた場合もこんな感じで見分けを付けられるようになります。

対応方法

Windows Terminal -> tmuxという2層構造になっているので、両方の設定が必要です。

Windows Terminal

※デフォルトなら設定しなくて良いはずですが、うまくいかないようなら設定してください

Windows Terminalの「設定」を開き、JSONファイルを開きます。

tabTitle を空文字、及び suppressApplicationTitlefalse に設定します。

{
  "profiles": {
    "list": [
      {
        "name": "Ubuntu-24.04",
        "tabTitle": "",
        "suppressApplicationTitle": false
      }
    ]
  }
}

tmux + bash

~/.tmux.conf を以下の様に設定します。

set -g set-titles on
set -g set-titles-string '#{?@runtitle,#{@runtitle},#{@stickytab}}'
setw -g automatic-rename off
setw -g allow-rename off

tmuxを起動中に反映させたいなら tmux source-file ~/.tmux.conf してください。

~/.bashrc~/.zshrc に以下の関数を登録します。

wt-title()       { tmux set -q  @stickytab "$*"; }
wt-title-clear() { tmux set -q  @stickytab '';    }

起動中のbashで読み込みたいなら source ~/.bashrc してください。

使い方

任意のtmuxセッションのシェル上で以下の関数を実行してください。

wt-title "ウィンドウタイトルに付けたい名前"

これで、当該tmux-sessionをfgにしているウィンドウでは、ウィンドウタイトルが wt-title で付けた名前になっているはずです。

まとめ

この設定をすることで、たまに自宅環境ではない環境からRDP接続して狭い画面で作業する時にも、ターミナルのウィンドウ切り替えがとてもスムーズになりました。
ターミナルウィンドウごとに都度名前を付けるのがちょっと面倒ではありますが、この辺は皆さま使い方に合わせて自動設定するようなことをしても良いと思います。

それでは。皆さま良いClaude Codeライフを。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。