ウィンドウ
ドキュメント作成中
一部の内容はまだ不完全な場合があります。
ウィンドウは 3 つに分かれています。左はワークスペースを収めるサイドバー、中央は端末の領域、右は任意のパネルです。端末そのものは WezTerm のもので、レンダリング、フォント、エスケープシーケンスはそのドキュメントがそのまま当てはまります。ここで扱うのは、その周りの部分です。
サイドバー
サイドバーにはワークスペースが入っています。表示中の Space、その Project、そして各 Project の Thread です。このモデルとその中のすべてのメニューは Space、Project、Thread で説明しています。ここで扱うのは配置だけです。
いちばん上には表示中の Space の名前を書いたボタンがあり、Space メニューを開きます。メニューには、まずこのマシンの Space が並び、続いてリモートサーバーごとに、サーバー名と接続状態を見出しにしてその Space が並びます。サーバーごとに このサーバーに新しいスペース があり、そこに Space を加えられます。ほかのウィンドウで開いている Space は使用中と表示され、選べません。Space は一度に 1 つのウィンドウでしか表示されないからです。同じメニューには リモートホストを追加…、新しいスペース、今の Space の名前の変更、そしてその Space やほかの Space の削除もあります。
その下に Space の Project が並び、それぞれに Thread があります。ピン留めした Thread は Project の一覧を離れ、Space の上部にある 1 つの ピン留め 欄に移ります。この欄は Space 内のすべての Project のピン留めを集めたものです。ピン留めした Thread はドラッグで並べ替えられず、アーカイブした Project のピン留めは、アーカイブを解除するまでこの欄に出てきません。Thread には未読の印も付けられます。
Thread はそれぞれ状態を持っているので、この一覧を見るだけで「どのセッションが作業中で、どれが応答を待っているか」がわかり、一つずつ開いて回る必要がありません。判定の仕組みは エージェント状態 にあります。
サイドバーを畳んでいるときは、ウィンドウの左端かサイドバーのボタンにポインタを置くと、端末の上に重なって滑り出し、ポインタが離れるまで出たままになります。下の端末は動かず大きさも変わらないので、中で動いているプログラムにサイズの変化は伝わりません。滑り出したサイドバーから開いたメニューや名前の変更は、終わるまでサイドバーを出したままにします。
ウィンドウのタブとペインのタブ
タブには 2 つの階層があり、区別しておく価値があります。
ウィンドウ上部の列にあるのがウィンドウのタブです。1 つが 1 つのレイアウト全体 — 端末 1 つ、または左右や上下に分割した複数の端末 — で、ウィンドウのタブを切り替えるとレイアウトがまるごと入れ替わります。
そのレイアウトの各区画の上には、それぞれ専用のタブの帯があります。これがペインスタックです。スタックのタブは、その 1 つの区画を交代で使う端末たちなので、さらに分割しなくても 1 つの区画に複数のシェルを置けます。帯の端にあるボタンは、スタックに新しいタブを開く、区画を下か右に分割する、区画をウィンドウのタブいっぱいに拡大する、の各操作です。帯の空いたところをダブルクリックしても、そこに新しいタブが開きます。上下の分割の中にある区画には、帯だけに畳んで残りに場所を譲るボタンもあり、畳めるのはウィンドウのタブごとに 1 区画です。
ペインのタブは区画の上へドラッグできます。区画の真ん中に落とすとその区画のスタックに加わり、端の近くに落とすとその側で区画を分割して新しい半分に入ります。どちらになるかは、手を離す前にハイライトで示されます。
ウィンドウのタブを右クリックすると、次の項目があります。
| 項目 | 動作 |
|---|---|
タブ名を変更… | ウィンドウのタブに名前を付けます |
左側のタブを閉じる、右側のタブを閉じる、他のタブを閉じる | それらのウィンドウのタブを、確認せずに閉じます |
タブを左へ移動、タブを右へ移動 | 列の中で 1 つ動かします |
右側に新しいターミナルタブ | 隣にウィンドウのタブを開きます。今の端末と同じマシン上です |
ペインを拡大 | そのウィンドウのタブのアクティブな区画をいっぱいに広げ、または元に戻します |
ペインのタブを右クリックすると、そのタブの名前を変更できます。
端末の中を右クリックすると、コピー、ペースト、録画用のマスクを編集… と 録画用のマスクを消去(録画用のマスク を参照)、右に分割、左に分割、下に分割、上に分割、ターミナルをリセット があります。最後の Frontend access は A · Shared (tmux-like) と B · Handoff (exclusive) — 複数のデバイスが同時に操作できるか、一度に 1 台か — を選ぶもので、ウェブアクセス で説明しています。端末の中のプログラムがマウスを捕まえている場合は、Shift を押しながら右クリックします。
タブアイコン
各ペインのタブには、そのペインが動かしているもののアイコンが付きます。Claude Code、Codex、Python、Neovim、Docker、SSH セッションなどで、シェルやどのアイコンにも当てはまらないものには素の端末マークが付きます。ペインが作業している間、アイコンはスピナーに置き換わります。最上段のウィンドウのタブは、それぞれ別のものを動かしているかもしれない複数のペインを抱えているので、常に端末マークを表示します。
ペインが何を動かしているかは、その端末を握っているプログラムから判断します。見るのはペインが出力したときやタイトルを変えたときで、定期的に調べることはしません。また、変化が半秒続いてはじめて反映されるので、一瞬で終わるコマンドでアイコンがちらつくことはありません。ランチャーやインタプリタは透かして見ます。sudo vim は Vim と表示され、Python や Node が実行するスクリプトはまずスクリプト名で判断し、だめならインタプリタに戻ります。ThinkTerm Connect サーバー上のペインはそのサーバーが観察してすべてのクライアントへ伝えるので、リモートのタブにもローカルと同じアイコンが付きます。
素の SSH では、ローカルで端末を握っているプログラムは ssh 自身なので、タブには SSH のアイコンしか出せません。素の SSH ホストの設定にある リモートのプログラムを識別 を使うと、リモートのシェルが自分で実行中のものを伝えるようになります。次回の接続で ThinkTerm がそのホストの bash または zsh の起動ファイルに 1 行を加え、オフにするとその次の接続でその 1 行を取り除きます。ほかのログインシェルは対応外と表示され、何も変更されません。
その 1 行がしているのは、コマンドを実行する前に WEZTERM_PROG ユーザー変数をそのコマンドラインに設定し、プロンプトに戻ったら空にすることです。対象外のシェル、たとえば fish でも、同じことをすれば同じようにプログラムを伝えられます。この報告が使われるのは、端末が別のマシン上にある間だけです。ローカルのプログラムについては、ThinkTerm が実際に見ているものが優先されます。
設定 › タブアイコン はアイコンをオフにでき、オフにするとすべてのタブが端末マークに戻ります。このページには、アイコンそのものが検索できるカードの格子として並んでいます。カードには反応するプログラム名が並び、形と色を変えられます。SVG を選ぶか .svg ファイルをカードにドロップし、円の色と図柄の色を設定します。取り込める SVG は 256 KB までです。ThinkTerm はそのコピーをハッシュの名前で ~/.config/thinkterm/tab-icons/ に保存するので、元のファイルを動かしたり消したりしてもアイコンは失われません。組み込みのカードは出荷時の状態にリセットでき、自分のカードは 64 枚まで追加も削除もできます。1 つのプログラム名が属するのは一度に 1 枚のカードだけなので、あるカードに加えると、それまで持っていたカードからは外れます。端末のカードは固定で、ここには表示されません。
WezTerm のタブバー
ThinkTerm 自身のタブ列は、設定がどうであれウィンドウ上部にとどまります。WezTerm のタブバーのオプション — enable_tab_bar、use_fancy_tab_bar、tab_bar_at_bottom、hide_tab_bar_if_only_one_tab など — は、代わりに端末領域の中にある 1 行の別のバーを動かします。位置はペインのタブの下か、下端に沿った場所です。
use_fancy_tab_bar = false なら、このバーには WezTerm のレトロなタブが並び、format-tab-title とタブバーの色はこのバーに適用されます。既定の fancy なタブバーのままなら、window:set_right_status などでステータス文字列が設定されるまでは現れず、一度現れるとその行を保ち続けます。出たり消えたりするステータスのたびに端末の大きさが変わることはありません。enable_tab_bar = false にすると完全に消えます。
Live Overview
十数個のセッションのうちどれが動いているかは、タブ列では答えられません。Live Overview は答えます。生きている Thread をカードとして並べ、所属する Space ごとにまとめ、最大 5 列で表示します。
各カードはその端末の今の様子を映し、上には Thread の名前と実行中のコマンドを書いたカプセルが浮かびます。カプセルには、Thread のワークスペースにあるタブ一つにつき 1 つのドットが、すべてのウィンドウにまたがって並びます。そのタブでコマンドが動いていれば青、カードが最後に見せてから出力があれば明るく、何もなければ淡く、カードが今映しているタブのドットはいちばん大きくなります。ドットにポインタを置くとカードがそのタブをプレビューし、クリックするとそのタブで Thread が開きます。タブが 6 つを超えるとドットは 3 つと件数に畳まれ、ポインタをしばらく置くと広がります。
現在オフラインのマシンもグリッドから消えずに残るので、ノート PC が眠っても Space が空になってしまうことはありません。
まだ何かが動いているカードを閉じるときは確認が入ります。その端末の分割ペインと実行中のプログラムがすべて終わるからです。
二組の色
ThinkTerm は 2 つのパレットを描きます。どちらがどちらかを知っておく価値があります。
プログラムが文字を描くのに使う色は端末のもの、つまり WezTerm の colors と color_scheme で、ドキュメントは上流にあります。ThinkTerm はそれに、設定ファイルの外でスキームを選ぶ方法と、ライトなインターフェースに合わせた既定値を加えており、どちらも設定ファイルより優先されることがあります。
設定 › 外観 › 有効なカラースキーム は、端末が今使っているスキームを示します。クリックすると端末ウィンドウでコマンドパレットの テーマを変更 の一覧が開き、一覧を移動するにつれて端末が描き直されます。ここで選んだスキーム、またはコマンドパレットの テーマを変更 で直接選んだスキームは settings.json に保存され、すべてのウィンドウに適用され、設定ファイルの color_scheme より優先されます。そのためその行を書き換えても何も変わらないように見えますが、同じ一覧の先頭にある 設定のデフォルトを使用 を選べば、選択が設定ファイルに戻ります。設定ファイルの colors は、どのスキームが効いていてもその上に重ねられます。
何も選んでいなければ、ライトなインターフェースでは端末が Apple System Colors (Light) で描かれます。ただし設定ファイルがスキームを指定しているか colors を設定している場合は別です。これで、ライトなウィンドウに黒地向けの文字色が来ることはありません。ダークなインターフェースでは設定ファイルに任されます。
端末の周りに ThinkTerm が描く色 — サイドバー、タブ列、各ペインの上の帯、設定画面、メニュー — は ThinkTerm 自身のもので、ui_colors が 1 項目ずつ上書きします。項目の一覧は 設定 にあります。設定 › 外観 › テーマ には 4 つのモードがあります。システム、ライト、既定のダーク、そして ターミナルの配色に合わせる — これは端末が使っているカラースキームの背景の上にインターフェースを移します。ターミナルの配色に合わせる ではスキームが自動で選ばれることはありません。そこではスキームがインターフェースを決めるのであって、その逆ではないからです。
端末のテキストに、背景に対する最小コントラストを保たせることができます。そうすれば黒地に濃いグレーを置くようなスキームでも読めます。設定 › ターミナル › 文字の最低コントラスト は 3:1、4.5:1、7:1 を選べ、既定ではオフです。コントラストを上げると、プログラムがわざと暗くしたもの — 無効なメニュー項目、プログレスバーの空いた側、コメント — まで平らになってしまうからです。オフのままなら WezTerm 自身の text_min_contrast_ratio オプションが決め、それは設定ファイルで指定しない限り空です。設定で比率を選べば、そちらが優先されます。
インターフェースの文字サイズ
ThinkTerm 自身の文字は、端末の文字とは別に大きさを決めます。設定 › 外観 › タイポグラフィ には 6 か所それぞれのステッパーがあり、範囲は 10 から 28 です。上にはウィンドウの小さな図があり、その行が効く部分が光ります。
| 設定 | 対象 |
|---|---|
設定 UI のフォントサイズ | 設定ウィンドウ |
ホームのフォントサイズ | ホームとメインの内容領域 |
右サイドバーのフォントサイズ | ファイル、ノート、スニペット。設定するまでは ホームのフォントサイズ に従います |
ワークスペースサイドバーのフォントサイズ | 左のサイドバー |
タブバーのフォントサイズ | 上部のウィンドウのタブ |
ペインヘッダーのフォントサイズ | ペインのタブの帯 |
設定 UI のフォントウェイト は設定ウィンドウの文字の太さを 300 から 800 まで、100 刻みで決めます。各行は個別にリセットできます。端末のフォントとサイズは 設定 › ターミナル と設定ファイルにあります。設定 を参照してください。
アプリアイコン
設定 › 外観 › アプリアイコン は、動いているアプリが Dock とアプリスイッチャーに出すアイコンを、既定の シンプル と クラシック で切り替えます。macOS でのみ機能します。
スクロール
スクロールバックは行単位ではなくピクセル単位で動きます。トラックパッドやタッチのドラッグは、1 行ずつ飛ぶのではなく指について動きます。設定 › ターミナル › スクロール方式 は、既定の スムーズ と、1 行ずつ動く ステップ を切り替えます。
各ペインは、フォーカスのあるものだけでなく、スクロール中に右端へ細いスクロールバーを描き、少し経つと消えます。ドラッグもできます。設定 › ターミナル › スクロールバー でオフにできます。設定ファイルに enable_scroll_bar = true があると、このスイッチにかかわらず、WezTerm 自身のスクロールバー — フォーカスのあるペインの横の溝 — に置き換わります。
下部の引用文
設定 › ターミナル › 下部の引用文 は、端末領域の右下に短い 1 行を表示します。既定ではオフです。端末の場所は取りません。最後の 1 行の下に余った隙間に描かれるだけで、隙間が狭すぎる — ウィンドウの高さがちょうど行数ぶんしかない — 場合は何も表示されません。引用文のフォントサイズ は、端末のレイアウトを変えずに大きさを変えます。
引用文は ~/.config/thinkterm/bottom_quotes.json から読みます。text と省略可能な author を持つオブジェクトの配列です。
[
{ "text": "Ship the small version first.", "author": "A colleague" },
{ "text": "Read the error message." }
]このファイルは最初に引用文を表示するときに初期の一覧付きで作られ、引用文ファイル › 開く で開けます。編集はファイルを保存すると読み込まれます。引用文の切り替え は 順番 なら一覧の順に、ランダム なら無作為に選びます。引用文の間隔 は切り替わる間隔で、1 分から 24 時間まで、既定は 1 時間です。切り替えは時計に合わせて行われるので、どのウィンドウにも同じ引用文が出ます。引用文 JSON をリセット は出荷時の一覧でファイルを上書きします。書いた内容が失われるので、2 回押してはじめて実行されます。
端末の中の画像
プログラムは Kitty グラフィックスプロトコル、iTerm2 のインライン画像、Sixel で端末に画像を描けます。WezTerm と同じです。
端末は Kitty プロトコルの新しい部分 — Unicode プレースホルダー、ほかの画像を基準に置く配置、アニメーション — も保持しますが、デスクトップのウィンドウはまだそれらを描きません。ブラウザで開いた端末は描きます。ウェブアクセス を参照してください。逆にブラウザは、iTerm2 のプロトコルで送られた PNG や JPEG を表示しません。
各ペインが保持する Kitty の画像データは最大 128 MiB で、kitty_image_memory_budget_mib で決まり、0 は無制限です。超えると、画面に出ていない画像から古い順に捨てられます。画面に出ているものだけで超える場合は、配置されたのが最も古いものから画面からも外されますが、いちばん新しい画像は残ります。1 つのアニメーションは最大 256 MiB、予算のほうが小さければ予算までです。
録画用のマスク
画面を録画したり共有したりするとき、録画用のマスクは端末の一部を不透明な黒い矩形で覆います。端末を右クリックして 録画用のマスクを編集… を選びます。中のプログラムがマウスを捕まえている場合は、Shift を押しながら右クリックします。空いたところをドラッグするとマスクを描き、マスクをドラッグすると動かし、右下の角をドラッグすると大きさを変えます。完了 か Escape で端末は通常の入力に戻り、同じメニューの 録画用のマスクを消去 ですべて取り除けます。
マスクは 1 つのペインに属し、最大 64 個まで、ペインの中の決まった位置にとどまります。テキストがスクロールしてもついて行かないので、スクロールしたりウィンドウを並べ替えたりした後は録画を確かめてください。マスクはペインと一緒にウィンドウ間を移り、Live Overview のカードにも現れます。マスクはこの ThinkTerm の中だけのもので — 同じセッションにつながったほかのクライアントには送られません — ペインを閉じるか ThinkTerm を終了すると消えます。
マスクが覆うのは画面であって、内容ではありません。下のテキストは端末の中にも、コピーした内容にも、ログにも、同じセッションにつながっているほかのすべてのクライアントにも残っています。
右側のパネル
端末の右のパネルには、ファイルとノート で説明するファイル、ノート、スニペットと、エージェント状態 で説明する Agents パネルが入ります。インストールしたプラグインは、その後ろに自分のパネルを加えられます。詳しくは プラグイン にあります。スニペット自体も組み込みのプラグインです。
設定 › サイドバーとプラグイン がパネルを個別に切り替え、インストール済みのプラグインを一覧にします。すべてのパネルを切ると、右サイドバー自体がなくなります。
畳んだ右サイドバーも左と同じように呼び戻せます。ウィンドウの右端かそのボタンにポインタを置くと、端末の大きさを変えずにその上へ滑り出します。
ウィンドウが開く場所
設定 › 一般 › メインウィンドウの位置とサイズを復元 は、最後に離れたときの大きさと位置でメインウィンドウを開き直します。macOS と Windows で有効です。
レンダラー
設定 › 一般 › レンダラー は、既定の WebGPU と OpenGL のどちらを使うかを選びます。端末ウィンドウにも設定ウィンドウにも適用され、ThinkTerm を再起動すると反映されます。
そのマシンで WebGPU が起動できない — 使える Metal、DirectX 12、Vulkan のアダプタがない — 場合、ウィンドウは開けずに終わるのではなく OpenGL で開きます。選択を誤っても、設定を開いて元に戻せなくなることはありません。OpenGL を選んだ場合は WebGPU を試すこと自体を省きます。
関連
- Space、Project、Thread — サイドバーが収めるワークスペースと、そのメニュー
- キーボードとコマンド — ショートカットとコマンドパレット。
テーマを変更はそのグループの 1 つ - エージェント状態 — 各 Thread が持つ状態と Agents パネル
- ファイルとノート — 右側のパネルの中身
- プラグイン — インストールしたプラグインが加えるパネル
- リモート — SSH ホストと ThinkTerm Connect、リモートのタブアイコンの出どころ
- ウェブアクセス — 同じ端末をブラウザで使うこと、そして
Frontend access - 設定 —
ui_colors、text_min_contrast_ratio、設定ウィンドウの書き出し先
