MulmoTerminal の xterm カラー — 一体を拡大しても、どのプロジェクトか分かる印

MulmoTerminal の xterm カラー — 一体を拡大しても、どのプロジェクトか分かる印

課題:三十分集中したあと、どのプロジェクトか思い出せない

AI を九枚のマスに並べて動かすとき、プロジェクトごとにヘッダーの色を付けておきます。格子で見ているあいだは、どのマスがどのプロジェクトか一目で分かります。

一体を拡大します。長い出力を読みたいので。

三十分たって、ふと手が止まります。いま触っているのは、どのプロジェクトだったか。

上端に細い帯があって、そこに色は付いています。でも三十分ずっと画面の中央を見ていたので、視界に入っていませんでした。

拡大すると、面積の比率が変わる

格子で見ているときは、ヘッダーがマスの上の三分の一くらいを占めます。拡大すると、ヘッダーは画面の上端の細い帯になります。視界のほとんどはターミナルの中身です。

色分けが効きません。色が付いている場所を見ていないからです。

ヘッダーや名札、アイコンは「格子を外から眺めるときの印」です。中に入って集中しているあいだには働きません。

既存の回避策とそのコスト

iTerm2 のプロファイルで色を分ける

iTerm2 や Windows Terminal は、プロファイルごとに前景・背景・ANSI 16 色を書き換えられます。ただしプロファイルはプロセス単位で、ブラウザ上の MulmoTerminal には届きません。プロジェクトが増えるとどのプロファイルがどれか自分で管理することになり、選び忘れると見分けの印が付かないまま新しいマスを開くことになります。

ANSI 16 色まで全部書き換える

テーマアプリで ANSI 16 色まで全部変えると、赤がエラー・緑が成功・黄色が警告というターミナルの既定の意味まで変わります。ls のフォルダの色、git diff の + と - の色、grep --color のハイライトも一緒に変わるので、三週間後に「このプロジェクトだけエラーが青」の理由を忘れている、という事故が起きます。道具の意味まで変えてしまうのは、見分けのために払うコストとして重すぎます。

MulmoTerminal の解決:枠と中身を別々に、面積の大きい背景だけ変える

MulmoTerminal は、枠(ヘッダー・セル) と 中身(xterm のターミナル画面) を別の設定で色付けします。

拡大しても消えない印にしたいなら、中身の側を変えます。

用意されている配色の上に、部分的に書く

ANSI 16 色を自分で選ぶのは大変です。4 つのプリセットがあります。

プリセット 雰囲気
midnight 既定。濃い紺基調
nord 寒色系の落ち着いた色
daylight 明るい背景
solarized 定番の solarized dark
{ "theme": "nord" }

その上に、変えたいところだけ部分上書きできます。

{
  "theme": "nord",
  "colors": { "background": "#0a1330" }
}

これで、nord の配色のまま、背景だけ濃紺になります。プロジェクトごとに変えたいのはたいてい背景だけなので、実用上はこの形がいちばん使われます。

変えるのは 3 色で足りる

見分けるという目的なら、これだけです。

色 変える理由
background 面積が一番大きいので、これだけで区別できる
foreground 背景を変えたらコントラストを合わせる
cursor 小さいが、常に点滅しているので目に入る

ANSI 16 色(red / green / yellow …)は触らないのが安全です。これらにはそれぞれ意味が付いていて、ls や git diff や各種 CLI がその意味を前提に色を出力しています。

プロジェクト単位の書き方

プロジェクトのフォルダの一番上に置く .mulmoterminal.json に書きます。

{
  "theme": "nord",
  "colors": {
    "background": "#0a1330",
    "foreground": "#f2e29b",
    "cursor": "#f5b301"
  }
}

AI にファイルを書かせたときは即時反映。エディタで手で書いたときは、タブを再読み込みします。

詳細

枠と中身を揃えると、効果が最大

格子で見るときの headerColor と、拡大したときの colors.background を同じ色調にしておくと、マス全体が 1 つのプロジェクトとして認識できます。

{
  "name": "acme-api",
  "headerColor": "#0b2545",
  "headerTextColor": "#e6f0ff",
  "badgeColor": "#2563eb",
  "theme": "nord",
  "colors": { "background": "#0a1330" }
}

全部のマスに同じ上書きを効かせたいときは、場所が違う

よく間違えるところです。

やりたいこと 書く場所
このプロジェクトだけ背景を紺にしたい そのプロジェクトの .mulmoterminal.json
全部のプロジェクトでカーソルをオレンジにしたい 自作の配色の term

全部のほうを後者で書けるのが大事です。全プロジェクトの .mulmoterminal.json を回って同じ 1 行を書くのは、追加するたびに忘れますし、設定が散ります。

自作配色は ~/.mulmoterminal/config.json の themes に書きます。

{
  "themes": [
    {
      "id": "mine",
      "label": "自分の配色",
      "extends": "nord",
      "term": { "cursor": "#f5b301" }
    }
  ]
}

書いたらアプリを再起動して、設定画面の配色一覧から選びます。themes はアプリ起動時に 1 度だけ読まれるので、再起動が必要です。

作業用の worktree に移っても、中身の色は引き継がれる

git worktree で作業フォルダを切る と、プロジェクトの設定はそのまま引き継がれます。

ただし枠側は少し違います。worktree ごとに、ヘッダー・名札・バッジの色相が自動で 12 度ずつずらされます。つまり、

この二つを同時に成立させるために、項目によって引き継ぎ方が分けられています。3 本並べたときに「同じプロジェクトの別作業」が一目で分かる、という挙動の由来はこれです。

使ってみる

既存の MulmoTerminal 環境があれば、設定ファイルの編集だけで動きます。はじめての方は、MulmoTerminal 完全ガイド の「使い方 3 ステップ」から。

動作確認の最小シナリオ

二つのプロジェクトを立てて、片方だけに設定を書きます。

// プロジェクト A の .mulmoterminal.json
{
  "theme": "nord",
  "colors": { "background": "#0a1330" }
}

格子で見ると、両方ともヘッダーの色で区別できます(これはどちらにも付いている)。設定を書いたほうを拡大すると、画面いっぱいに紺が広がります。書いていないほうを拡大すると、中身は既定の色のままで、上端の細い帯にしか色がありません。

その差が、拡大時に効いている分です。三十分集中したあとにどのプロジェクトか思い出せるのは、前者です。

ls のフォルダの色、git diff の + と - の色が今までどおりなら、ANSI 16 色は触れていません。そこは触らないのが安全です。

やめるときは .mulmoterminal.json からその項目を消すか、ファイルごと消せば戻ります。

まとめ

関連: MulmoTerminal 公式ガイドの xterm カラー / MulmoTerminal の背景画像 — 色に加えてもう一段の印 / git worktree で並列 AI を隔離する / Cursor の代替としての MulmoTerminal

この記事をシェア

関連記事

記事一覧に戻る