設定
ドキュメント作成中
一部の内容はまだ不完全な場合があります。
ThinkTerm は WezTerm と同じく Lua ファイルで設定します。設定項目名、モジュール名、構文はいずれも変更されていません — ThinkTerm の設定ファイルも次の行から始まります。
local wezterm = require 'wezterm'異なるのは、ファイルをどこから読むか、そしてデータをどこへ書くかだけです。
設定は 1 か所ではなく 2 か所
Lua ファイルは、あなたが手で編集する側で、ターミナル自身の設定項目を持ちます。
その隣にある ~/.config/thinkterm/settings.json は設定ウィンドウが書き出すもので、そこに操作のある選択 — テーマ、ウィンドウの不透明度、ショートカット、スクロールとオーバーレイのスクロールバー、インターフェースのフォントサイズとサイドバーの幅、表示言語、レンダラ、タブアイコン — を保持します。手で編集するためのものではありません。両者が重なる部分では、ほぼ常に設定ウィンドウでの選択が効きます。例外は後述します。
このファイルは使っているあいだにも書き換えられます — サイドバーをドラッグしたり隠したり、ウィンドウを動かしたり — が、それで Lua 設定が再読み込みされることはありません。フォントが読み込み直されたり、コマンドパレットが閉じたりすることもありません。エディタや別のプログラムなど外部から編集された場合は、すぐに読み取って設定ウィンドウと同じように反映します。使われないまま放置され、次の保存で古い内容に上書きされることはありません。
設定ウィンドウ
設定 は、サイドバー下部の歯車から開けるほか、macOS では ⌘,、それ以外では Ctrl+Shift+, でも開けます。各ページと、その説明がある場所は次のとおりです。
| ページ | 中身 | 説明 |
|---|---|---|
| 一般 | 言語、レンダラー、メインウィンドウの位置とサイズを復元、読み込まれた設定ファイル、セッションサーバー、再起動と終了 | このページ、ウィンドウ、リモート |
| 外観 | テーマ、有効なカラースキーム、アプリアイコン、タイポグラフィ、ウィンドウの不透明度、Windows ではすりガラス(試験) | ウィンドウ、ウィンドウの不透明度 |
| タブアイコン | ペインのタブに付くプログラムのアイコン | ウィンドウ |
| サイドバーとプラグイン | 右側のパネル、Agents パネル、インストール済みのプラグイン | ウィンドウ、プラグイン、エージェント状態 |
| ターミナル | 既定のシェル、フォント、スクロール方式、スクロールバー、文字の最低コントラスト、マウスとクリップボード、分割アニメーション、リモート分割のサイズ変更、下部の引用文 | このページ、ウィンドウ、コピーとペースト、リモート |
| ワークスペース | リモートファイル接続のアイドルタイムアウト、ダウンロードフォルダー、リモートへのドロップ先、通知音 | ファイルとノート、エージェント状態 |
| エージェント | どのコーディングエージェントを、どう認識するか | エージェント状態 |
| Web | ブラウザからのアクセスと、渡したリンク | ウェブアクセス |
| アーカイブ | アーカイブした Project | Space、Project、Thread |
| キーマップ | 各キーの動作を表示し、コマンドにショートカットを割り当てるキーボード | キーボードとコマンド |
| コマンドパレット | パレットのショートカット、行数、フォントサイズ、検索 | キーボードとコマンド |
| インポート | WezTerm 設定、コードエディタで開いたフォルダ、Herdr セッションの一度きりのインポート | このページ |
| バックアップ | ThinkTerm の状態の書き出しと読み込み | このページ |
| ソフトウェアアップデート | アップデートの確認とインストール | アップデート |
| 情報 | バージョン、ビルド、リンク、ファイルの場所 | このページ |
開発者 には、さらにページを表示するスイッチがあります。ThinkTerm そのものの開発に使うもので、日常の設定ではありません。一覧の上の検索欄では、ページの中の設定項目からページを探せます。
情報ページと不具合報告
設定 › 情報 には、バージョン、ビルド、プラットフォーム、ライセンスが表示され、ソースコード、リリースノート、設定ファイル、データフォルダ、第三者の表記、プライバシーポリシーを開けます。情報をコピー は、不具合報告に必要な情報をクリップボードに入れます。バージョンとビルド、ターゲットのプラットフォームと OS、設定ファイルとデータフォルダのパス、そしてアップデート確認を済ませていれば、確認した最新のリリースです。パスにはホームフォルダの名前が含まれるので、公開の場に貼る前に確かめてください。
設定ウィンドウと設定ファイルが重なるところ
いくつかの選択は両方でできます。これらは設定ウィンドウのほうが優先され、それぞれ選択を設定ファイルに戻す方法があります。
| 設定ウィンドウ側 | 優先される相手 | 設定ファイルに戻すには |
|---|---|---|
設定 › ターミナル › 既定のシェル | default_prog。このマシンで新しく開く端末について | thinkterm.lua に従う (default_prog) を選ぶ。設定ファイルが何も指定していなければ システム既定 と表示されます |
設定 › ターミナル › フォントサイズ、8 から 48 | font_size。開いている端末にすぐ適用 | その行をリセット |
設定 › 外観 › 有効なカラースキーム またはコマンドパレットの テーマを変更 で選んだスキーム | color_scheme | テーマを変更 の 設定のデフォルトを使用 |
設定 › ターミナル › 文字の最低コントラスト | text_min_contrast_ratio | オフ |
設定 › コマンドパレット › フォントサイズ | command_palette_font_size | その行をリセット |
設定 › キーマップ で設定したショートカット | keys の同じキーと、そのキーの組み込みの既定 | そのショートカットの リセット、または すべてのショートカットをリセット |
設定 › 外観 › ウィンドウの不透明度 | window_background_opacity、macOS では macos_window_background_blur も | デフォルトに戻す |
既定のシェル には、このマシンで見つかったシェルが並び、次に端末を開いたときから効きます。従うのはこのマシンの端末だけで、このマシンのセッションサーバーに置かれた端末も含みます。リモートのサーバーは、そのサーバー自身の設定に従います。選んだあとでアンインストールされたシェルは、端末が開けなくなるのではなく、システム既定に戻ります。
Windows では一覧に Git Bash(ログインシェルとして起動)も加わります。Git for Windows が Program Files の下、%LOCALAPPDATA%\Programs\Git の下、または Scoop のインストールで見つかった場合です。wsl.exe があれば、WSL ディストリビューションを最大 3 つまで、既定のものを先頭に、それぞれ <name> (WSL) として並べます。Docker Desktop 自身の docker-desktop ディストリビューションは含まれません。
フォントそのものはこの中に入りません。設定 › ターミナル › フォントファミリー は設定ファイルが指定するフォントを表示するだけで、変えるのは設定ファイルの font です。
逆向きのものが 1 つあります。設定ファイルの enable_scroll_bar = true は、設定 › ターミナル › スクロールバー がどうであれ、ThinkTerm のオーバーレイのスクロールバーを WezTerm 自身のものに置き換えます。
設定 › キーマップ で設定したショートカットは settings.json に保存され、keys の同じキーと組み込みの既定より優先されます。設定ファイル自体が書き換えられることはありません。設定ファイルの Lua 関数を実行するショートカットは、ファイルでしか変更できません。キーボードとコマンド を参照してください。
ウィンドウの不透明度 は 30% から 100% まで 5% 刻みのスライダーで、ベータの表示が付いており、動かすまでは デフォルト と表示されます。動かすと、すべてのウィンドウに window_background_opacity が設定されます。macOS ではウィンドウが透けている間、半径 20 の背景ぼかしも加わりますが、設定ファイルが macos_window_background_blur を自分で指定している場合は加わりません。サイドバーとタブバーは端末より少し濃いままです。Linux ではグレーアウトされますが、設定ファイルの window_background_opacity は引き続き効きます。設定には Windows ではまだ安定していないと書かれており、そこでは win32_system_backdrop は設定ファイルに任されます。ウィンドウ を参照してください。
スキームを選んでいないとき、ライトなインターフェースは独自のライトな端末スキームも連れてきます。ウィンドウ を参照してください。
設定で選んだカラースキームとウィンドウの不透明度は、設定ファイルがあってもなくても反映されます。
設定ファイルの探索順
ThinkTerm は次の順で探し、最初に見つかったファイルを読み込みます。
- コマンドラインの
--config-file PATH $THINKTERM_CONFIG_FILE$WEZTERM_CONFIG_FILE- 実行ファイルと同じディレクトリの
thinkterm.lua— Windows のみ - 実行ファイルと同じディレクトリの
wezterm.lua— Windows のみ ~/.config/thinkterm/thinkterm.lua~/.config/thinkterm/wezterm.lua~/.thinkterm.lua
先頭の項目と並んで働くフラグがもう 2 つあります。--skip-config(-n)は探索そのものを飛ばして組み込みの既定値で動かし、--config name=value は繰り返し指定でき、読み込まれた設定の上から個々の項目を上書きします。3 つともグローバルフラグなので、サブコマンドより前に置きます。
$THINKTERM_CONFIG_DIR と $WEZTERM_CONFIG_DIR はこの探索には関与しません。これらは設定の読み込みが完了したあとに ThinkTerm が書き出すもので、読み込まれたファイルのあるディレクトリを指し、あなたが起動するプログラムから参照できるようにするためのものです。自分で設定しても、どの設定が選ばれるかは変わりません。
Windows 限定の 2 項目は意図的なものです。実行ファイルの隣に置かれた設定が最優先されることで、ThinkTerm を USB メモリに入れて持ち歩き、自分の設定がない、あるいは他人の設定が入っているマシンでも動かせます。
wezterm.lua というファイル名も残骸ではありません。既存の WezTerm 設定を、名前を変えずに ThinkTerm のディレクトリへ置けるようにするためのものです。
ThinkTerm が WezTerm のインストールから受け取るもの
あなたの WezTerm 設定ファイルは読み込まれません。上記の場所はいずれも ~/.config/wezterm/wezterm.lua を指しておらず、ThinkTerm がそこへ書き込むこともありません。
ただし分離は完全ではなく、知っておくべき経路が 2 つあります。
WEZTERM_CONFIG_FILE は尊重されます。 これは上の探索順に含まれるため、この変数が環境に設定されていれば(WezTerm をそのように構成していたなら十分あり得ます)、ThinkTerm はそれが指すファイルを読み込みます。WezTerm は自分が開くすべての端末でこの変数を設定するので、WezTerm の中のシェルから起動した ThinkTerm は WezTerm の設定を読み込みます。THINKTERM_CONFIG_FILE を設定するか、WezTerm 側の変数を解除すれば、二つのインストールを分離できます。
WezTerm の設定ディレクトリは Lua モジュールとカラースキームの探索対象として残ります。 ~/.config/wezterm/ と ~/.wezterm/ は Lua の package.path に含まれ、~/.config/wezterm/colors/ はカラースキームの探索先になります。そのため ThinkTerm の設定で require 'mymodule' と書けば、WezTerm 用に書いたモジュールが見つかります。分離されているのは設定ファイル自体であって、ディレクトリ全体ではありません。
インポート
設定 › インポート は、このコンピュータ上の別のプログラムがすでに持っているものを取り込みます。WezTerm 設定の項目、コードエディタで開いたフォルダ、そして Herdr のセッションです。どのインポートも一度きりで、その後は元と結びつきません。
このページは インポート元、内容の確認、完了 の 3 ステップです。最初のステップでインポート元がカードとして並び、続ける で選んだものを読み込みます。戻る でカードに戻り、最後のステップの 続けてインポート はカードからやり直します。WezTerm は常に並びます。コードエディタ は対応するエディタが入っているときだけ現れ、Herdr はベータの表示が付いていて、macOS と Linux だけで使えます。
ThinkTerm を初めて開くとき、ウェルカムページは見つかったものを同じように並べ、それぞれのボタンで、そのインポート元の 内容の確認 のステップでこのページが開きます — インストール を参照してください。
WezTerm からインポート
WezTerm のカードは、既存の WezTerm 設定から選んだ設定を ThinkTerm の設定へコピーします。その後は二つのファイルは独立し、WezTerm 側を後で変えても、ThinkTerm に届くのはもう一度インポートしたときだけです。
WezTerm の設定は次の場所を順に探し、最初に存在するものを使います。
~/.wezterm.lua$XDG_CONFIG_HOME/wezterm/wezterm.lua。XDG_CONFIG_HOMEが未設定なら~/.config/wezterm/wezterm.lua$XDG_CONFIG_DIRSの各ディレクトリの下のwezterm/wezterm.lua— macOS と Linux のみ
ここでは WEZTERM_CONFIG_FILE は使われません。上で述べた ThinkTerm 自身の設定の探索では使われます。
続ける はそのファイルを読み込み — Lua なので、WezTerm で動くのと同じように実行されます — 内容の確認 のステップで WezTerm 設定と ThinkTerm 自身の設定がどこで見つかったかを示したあと、インポートできる設定を一覧にします。出てくるのはファイル自身が設定している項目だけで、WezTerm の既定値のままの項目は出ません。そのため、インポートが WezTerm の既定値で ThinkTerm の既定値を上書きすることはありません。最初は見つかった項目がすべて選択されていて、件数の横に すべて選択 と クリア があります。インポートできるのは次の 15 項目です。
color_scheme、window_background_opacity、macos_window_background_blur、inactive_pane_hsb、font、font_size、line_height、cell_width、default_prog、default_cwd、front_end、window_decorations、disable_default_key_bindings、keys、key_tables
このリストが定めるのはインポート機能が代わりにコピーする範囲であって、ThinkTerm が対応している範囲ではありません。それ以外の WezTerm 設定項目も、ThinkTerm の設定ファイルに手で書けば同様に機能します。
読み直す はファイルをもう一度読みます。WezTerm 設定が見つからないときは、これと 選択項目をインポート がグレーアウトし、何も選んでいないときも 選択項目をインポート はグレーアウトします。選択項目をインポート は、選んだ値を普通の Lua テーブルとして ~/.config/thinkterm/imported_from_wezterm.lua に書きます。このファイルはインポート機能のものです。インポートのたびに丸ごと置き換えられるので、中で変えたことは次回で失われます。変更は自分の設定のほうで行ってください。
その後どうなるかは、~/.config/thinkterm/ にすでに ThinkTerm の設定があるかどうかで決まります。
- ない場合、インポートは
~/.config/thinkterm/thinkterm.luaも作ります。これはインポートしたファイルを読み込み、その結果を返します。ほかに必要なことはありません。 - ある場合 —
thinkterm.luaかwezterm.lua— そのファイルには手を付けず、インポートした値は、そのファイルが読み込むまで何も効きません。設定を返す行の前に次を加えてください。configは、そのファイルが返すテーブルです。
local imported = require 'imported_from_wezterm'
for key, value in pairs(imported) do
config[key] = value
endこのループより後の代入は、インポートした値を上書きします。
それ以外の場所にある設定は認識されません。設定が ~/.thinkterm.lua の場合、インポートが作る thinkterm.lua は探索順でそれより前に来るため、そちらが代わりに読み込まれます。
コードエディタからインポート
コードエディタ のカードは、VS Code とその派生エディタで開いたフォルダを取り込めるようにします。対象は VS Code、VS Code Insiders、Code - OSS、VSCodium とその Insiders 版、Cursor、Windsurf、Antigravity、Kiro、Positron、Trae、Void です。どれも自分のユーザーデータフォルダの中だけを探します。取り込むのはフォルダのパスだけで、フォルダの中身は読み取りません。マルチルートのワークスペース(エディタがフォルダではなく .code-workspace ファイルとして記録するもの)は除かれます。
内容の確認 のステップでは、フォルダを最近使った順に並べ、エディタごとに一覧を絞るボタンがあります。直近 30 日以内に使ったフォルダは、最初からチェックされています。選んだ Space にすでに Project として入っているものは サイドバーにあります と表示され、最初はチェックされません。追加先 で入れるローカルの Space を選びます — 設定を開いた Space がローカルならそれが初期値です — チェックしたフォルダはそれぞれ、Thread を 1 つ持つ Project になります。一覧の下の 1 行は、SSH、WSL、コンテナで開かれていて、まだ追加できないフォルダの数を示します。
Herdr からインポート
Herdr のカードは、Herdr のセッションを 1 つ、Herdr — <セッション> という名前の新しい Space としてインポートします。Herdr の workspace はそれぞれ、その workspace のタブとペインを収めた Thread を 1 つ持つ Project になります。ベータの表示が付いていて、macOS と Linux だけで使えます。ThinkTerm は Herdr の設定フォルダ、~/.config/herdr または $XDG_CONFIG_HOME/herdr の中にあるセッションを探します。既定のセッションと、sessions/ の下のそれぞれです。
続ける でセッションを読み込みます。1 つだけならそのプレビューがすぐ開き、複数あれば各セッションに プレビュー ボタンが付き、すでにインポートしたセッションには インポート済み の表示が付きます。インポート内容の確認 と題したプレビューには、新しい Space の名前、Project・第1階層タブ・ターミナルの数、各 Project のターミナルが出ます。プレビューを更新 はセッションを読み直します。プレビューのあとにセッションの構造、実行状態、保存済みレイアウトが変わると、インポートは止まり、先にプレビューを更新するよう求められます。以前にインポートしたセッションをもう一度インポートしようとすると、別の Space が作られるため警告が出ます。
Herdr 自身のファイルは変更されないので、Herdr をもう一度起動すると、以前のレイアウトが復元され、保存してあったものが再開されることがあります。
どちらのモードになるかは、セッションが実行中かどうかで決まります。
| 実行中のセッション | 保存済みレイアウト | |
|---|---|---|
| ボタン | 実行中のセッションを移す | レイアウトをインポート |
| 動作 | セッションのターミナルを ThinkTerm に移し、既存のプロセスは動き続ける | 保存されたディレクトリで新しいシェルを開く |
| 引き継がれないもの | スクロールバック全体と画像。全画面プログラムは再描画が必要な場合がある | 保存された起動コマンドとエージェント再開コマンドは実行されない |
| 必要なもの | Herdr の live_handoff 対応と、互換性のあるプロトコルバージョン | 保存されたディレクトリが存在し、レイアウト形式にこの ThinkTerm が対応していること |
要件を満たさないときは、理由が表示されてインポートは拒否されます。どちらのモードも、セッションが自分のアカウントのもので、そのディレクトリにアクセスできる必要があります。実行中のセッションでは、さらに Herdr と ThinkTerm が一時ディレクトリ、ソケット、ThinkTerm の実行ファイルを共有している必要があり、Linux では /tmp が noexec でマウントされていてはいけません。
リモートサーバー上の Space があるときは、インポート元のマシン に このコンピュータ とそれらのホストが並びます。接続していないホストは、選ぶと接続します。リモートホストからのインポートは、そのサーバーの Herdr を読み、プロセスはそのサーバーに残ります。セッションはリモート接続のアカウントのものである必要があります。
インポート中に接続が切れたときは、ページに インポート結果を確認 が出て、再接続してそのリクエストの結果を取り戻します。二度目のインポートを始めず、これを使ってください。インポートが終わると、Space を開く で新しい Space が開きます。
データの保存場所
macOS
- 設定ファイル —
~/.config/thinkterm/ - ワークスペースデータ —
~/Library/Application Support/ThinkTerm/ - ターミナル状態 —
~/Library/Application Support/thinkterm/ - キャッシュ —
~/Library/Caches/thinkterm/ - ランタイム —
~/.local/share/thinkterm/
Linux
- 設定ファイル —
~/.config/thinkterm/ - ワークスペースデータ —
~/.local/share/ThinkTerm/ - ターミナル状態 —
~/.local/share/thinkterm/ - キャッシュ —
~/.cache/thinkterm/ - ランタイム —
$XDG_RUNTIME_DIR/thinkterm/
Windows
- 設定ファイル —
%USERPROFILE%\.config\thinkterm\ - ワークスペースデータ —
%APPDATA%\ThinkTerm\ - 資格情報 —
%LOCALAPPDATA%\ThinkTerm\ssh\ - ターミナル状態 —
%APPDATA%\thinkterm\ - キャッシュ —
%LOCALAPPDATA%\thinkterm\ - ランタイム —
~/.local/share/thinkterm/
ここには、つまずきやすい点が 4 つあります。
設定ファイルのパスはプラットフォームの慣習に従いません。 すべての OS で ~/.config/thinkterm/ が使われ、Windows も例外ではありません — %APPDATA% ではないのです。そのため設定とデータはどのプラットフォームでも別の場所に置かれます。Linux も同じで、設定は ~/.config の下、データは ~/.local/share の下です。
大文字小文字だけが異なる 2 つのデータディレクトリがあります。 ワークスペースデータ — Space・Project・Thread の構造、スニペット、そして Unix では SSH ホスト帳とその暗号鍵 — は ThinkTerm/ に書かれます。ターミナルとマルチプレクサの状態は thinkterm/ に書かれます。macOS と Windows のファイルシステムは既定では大文字小文字を区別しないため、この 2 つは通常一つのディレクトリに統合されます — 大文字小文字を区別する APFS ボリュームでは統合されません。Linux では常に別々のディレクトリです。どこに置かれても、どちらも ThinkTerm のものです。
Windows では、資格情報は意図的に移動プロファイルの外に置かれます。 SSH ホスト帳とその暗号鍵は、他のワークスペースデータと一緒に %APPDATA% に置かれるのではなく %LOCALAPPDATA% の下にあります。ドメインからサインアウトしたときに、それらがプロファイルサーバーへ複製されないようにするためです。古いインストールにある 2 つのファイルは、ThinkTerm が最初に必要としたときに対で移されます。ウェブリスナーの証明書と秘密鍵も同じ理由でそこに置かれます。
ランタイムディレクトリも慣習には従いません。 マルチプレクサのソケット、pid ファイル、TLS の資材は Linux では $XDG_RUNTIME_DIR/thinkterm/ にあり、macOS と Windows では ~/.local/share/thinkterm/ に落ちます — この 2 つのプラットフォームでは、ほかに何も置かれていない場所です。thinkterm cli がサーバーを見つけられないときに思い出す価値があります。
ノートの保管庫はこのいずれにも保存されません。あなたが選んだ、通常の Markdown ファイルが入ったディレクトリであり、ThinkTerm はその紐づけだけを記録します。
WezTerm から引き継ぐデータ
WezTerm のデータディレクトリ — macOS では ~/Library/Application Support/wezterm/、Linux では ~/.local/share/wezterm/、Windows では %APPDATA%\wezterm\ — があると、ThinkTerm は起動時にそこから 4 つのものを自分のターミナル状態のディレクトリへコピーします。
| 項目 | 内容 |
|---|---|
plugins | wezterm.plugin.require が取得した Lua プラグイン |
recent-commands.json | コマンドパレットの最近のコマンド |
recent-emoji.json | 文字選択の最近の選択 |
repl-history | デバッグオーバーレイの Lua 履歴 |
どれも ThinkTerm 側にまだない場合にだけコピーされるので、実際には一度きりで、何かを上書きすることはありません。WezTerm 側のファイルはそのまま残り、そのディレクトリのほかのものは読まれません。
バックアップと復元
設定 › バックアップ は、ThinkTerm 自身の状態を選んだフォルダへ書き出し、またそこから戻します。書き出さない限り、何もバックアップされません。
書き出すと、ThinkTerm Backup に日付と時刻を付けた名前のフォルダが作られます。中身は普通の JSON ファイルで、横にある thinkterm-backup.json がその一覧です。
| ファイル | 内容 |
|---|---|
workspace_threads.json | Space・Project・Thread |
ssh_hosts.json | ThinkTerm 自身の SSH ホスト帳 |
snippets.json | スニペット |
recent-commands.json | 最近のコマンド |
Space は ThinkTerm がメモリに持っている状態から書き出されるため、直前の保存がまだディスクに届いていなくても、画面に見えているとおりのものが書き出されます。macOS と Linux では、各ファイルはモード 0600 で書かれます。
secret.key は意図して含めていません。保存パスワードはこのマシンの鍵で暗号化されたままホスト帳と一緒に書き出されるので、別のマシンでは入力し直す必要があります。Lua 設定、settings.json、ノートの保管庫も含まれません。いずれも普通のファイルなので、ほかのファイルと同じようにコピーしてください。
読み込みは、動いているウィンドウの下でこれらのファイルを差し替えることができません。ウィンドウはそれをメモリに持っていて、あとで書き戻すからです。そのため読み込みはまずバックアップのすべてのファイルを検査し、それから待ちます。適用するのは、ほかに ThinkTerm のウィンドウが動いていないと確認できた次回の起動で、何かが状態を読む前に行われます。ページにある ThinkTerm を終了 はそのためのものです。置き換えられる各ファイルは、元のファイルの横に <name>.before-import-<time>.json として残されます。どれか一つでも所定の場所に置けなければ、すでに置き換えたファイルは元に戻されるので、失敗した読み込みは何も変えません。失敗はバックアップのページに表示され、自動で再試行はされません。
一つだけ、置き換えではなく統合されるものがあります。ローカルのセッションサーバーがまだ持っている Space は、次に ThinkTerm がそのサーバーへ接続したときに戻され、両方にある場合はサーバー側の名前が優先されます。読み込みはバックアップにあるものを戻すだけで、サーバーが残しているものを消しはしません。
インターフェースの言語
設定 › 一般 › 言語 は ThinkTerm 自身のインターフェース言語を再起動なしで即座に切り替えます。システム設定に従う はシステム設定から取得し、実際に解決された言語を表示します。
インターフェースは英語・簡体字中国語・日本語・フランス語・ドイツ語で提供されます。対象は ThinkTerm 自身の画面だけで、ターミナルの内容や WezTerm が描画する部分は影響を受けません。
レンダラー
設定 › 一般 › レンダラー は、ターミナルウィンドウと設定ウィンドウで使うものを OpenGL と WebGpu から選びます。言語と違い、反映されるのは次に ThinkTerm を起動したときです。選んでいなければ設定ファイルの front_end に従います。このオプションは設定しなければ Windows では OpenGL、それ以外では WebGpu なので既定はそうなり、そこが OpenGL か Software なら OpenGL になります。
片方が失敗しても致命的にはなりません。使っているレンダラーが起動できないとき — 使える WebGpu アダプタがない、または OpenGL が古くて ThinkTerm のシェーダーを動かせない — は、ウィンドウはもう一方で開き、設定ウィンドウも同じです。片方しか動かないマシンでも、それを切り替えるための設定そのものが開けなくなることはありません。両方とも失敗したときだけ、ウィンドウは開きません。front_end = 'Software' は決してフォールバックしません。
macOS でのフォルダアクセス
Project はフォルダに紐づいており、そのフォルダを読めるかどうかは macOS が決めます。拒否された場合、Project のページがその旨を示し、システム設定 › プライバシーとセキュリティ › ファイルとフォルダ › ThinkTerm を案内します。
ThinkTerm 固有の点が 2 つあります。
Project のコンテキストメニューに フォルダへのアクセスを許可… があります。 ブロックされたページと同じピッカーを実行し、そのあと Project の最初の Thread を開くので、許可が想定ではなく実際に通ったことを確認できます。
セッションサーバーは自分の名義で要求します。 ローカル端末をバックグラウンドのセッションサーバーで動かしている場合、そのデーモンは独自の macOS プライバシー識別子を持つため、必要な許可は GUI に与えた許可と同じとは限りません。拒否がサーバー側から来た場合、ページはその点を説明し、システム設定の該当箇所を開く導線を出します。
拒否されたフォルダは、黙ってフォールバックするのではなくエラーになります。以前のビルドは何も言わずホームディレクトリへ戻っていたため、拒否がインターフェースまで届かず、許可のしようがありませんでした。
環境変数 THINKTERM_NO_PRIVACY_DISCLAIM は、デーモンにこの独立した識別子を与える処理をスキップします。
設定項目リファレンス
ほとんどの設定項目は WezTerm のものがそのまま使われているため、リファレンスは上流にあります。
注意点が 3 つあります。
ThinkTerm は 2026 年 3 月 31 日に WezTerm から分岐したため、それ以降に上流へ追加された項目はまだ存在しない可能性があります。
名前と意味はそのままで、既定値だけが変わった項目があります。後述の一覧を参照してください。
また ThinkTerm 独自の項目もあり、これらは上流のドキュメントには載っていません。
| 設定項目 | 制御する内容 |
|---|---|
agent_status_detection | セッション状態の検出を行うか |
web_servers | マルチプレクサが起動時に開くウェブリスナー。ウェブアクセス を参照 |
ui_colors | ThinkTerm 自身のインターフェースの色。colors は引き続きターミナルのパレット。インターフェースの色 を参照 |
remote_mux_auto_claim_on_open | 意図してリモートホストに接続したとき、そのターミナルをすぐ引き受けるか |
note_spellcheck_enabled | Markdown エディタのスペルチェック |
note_remote_images_enabled | ノートでリモート URL の画像を読み込むか |
note_reading_max_width | ノートの本文の列が広がる最大の幅。論理ピクセル(macOS ではポイント)単位で、既定は 820。ノートの領域がそれより広ければ列は中央に置かれます |
right_sidebar_search_respects_gitignore | ファイル検索が無視対象のファイルを飛ばすか。ファイルツリーには引き続き表示されます |
unfocused_fps | 表示されているがフォーカスのないウィンドウが、ターミナルの出力で再描画する頻度。既定は 10、0 で制限なし |
kitty_image_memory_budget_mib | 各ペインが保持できる画像データの量(MiB)。既定は 128、0 で無制限。ウィンドウ を参照 |
live_overview_preview_refresh_ms | Live Overview のカードがターミナルを読み直す間隔。既定は 300 |
text_min_contrast_ratio は上流の項目ですが、その上に 設定 › ターミナル › 文字の最低コントラスト があります。そこで比率を選べばそちらが優先され、オフ なら設定ファイルの値に任されます。
プラグインは Lua ファイルでは設定しません。プラグイン を参照してください。
WezTerm と異なる既定値
次の項目は意味こそ上流と同じですが、設定ファイルが指定しないときの出発点が違います。
| 設定項目 | WezTerm | ThinkTerm |
|---|---|---|
front_end | OpenGL | WebGpu(Windows では OpenGL) |
initial_cols | 80 | 120 |
initial_rows | 24 | 32 |
max_fps | 60 | 120 |
default_cwd | 未設定 | ホームフォルダ |
native_macos_fullscreen_mode | false | true |
color_scheme(macOS) | 未設定 | Apple System Colors。colors も未設定の場合 |
adjust_window_size_when_changing_font_size(macOS) | 未設定 | false |
default_cwd が効くのは、端末にほかの手がかりがないとき — 自分のディレクトリがなく、開いた元の端末もディレクトリを伝えていないとき — です。そのとき端末は、ThinkTerm 自体を起動したディレクトリではなく、ホームフォルダから始まります。adjust_window_size_when_changing_font_size がオフだと、フォントサイズを変えてもウィンドウの大きさは変わらず、そこに収まる行数と列数が変わります。
さらに 2 つは、未設定のときターミナルのパレットから導かれます。非アクティブなペインの減光 inactive_pane_hsb は、明るいカラースキームでは暗いものより浅くなり、常に同じ値ではありません。ペインの分割線の色もターミナルの背景から混ぜて作られます。明示的に設定すれば、上流のドキュメントどおりに振る舞います。
カラースキームは、ファイルではなく設定ウィンドウで決めることもできます。設定ウィンドウと設定ファイルが重なるところ を参照してください。
インターフェースの色
ui_colors は、ThinkTerm が端末の周りに描く色 — サイドバー、タブ列、ペインの上の帯、設定ウィンドウ、メニュー — を上書きします。どの項目も省略でき、指定しなかった項目はテーマが本来使う色のままなので、2 色を書いたテーブルは 2 色だけを変えます。
config.ui_colors = {
sidebar_bg = '#282828',
accent = '#d79921',
}色の書き方は、設定ファイルのほかの場所と同じです。項目は次のとおりです。
| グループ | 項目 |
|---|---|
| 面 | window_bg(いちばん奥の地)、sidebar_bg、workspace_sidebar_bg(一段沈んだサイドバーの地。設定ウィンドウのページ一覧)、header_bg(タブの上の帯)、card_bg(window_bg の上のカード)、group_bg(カードの中でまとめた行)、separator |
| コントロール | control_bg、control_hover_bg、control_pressed_bg、control_border、track_off(スイッチのオフ側) |
| サイドバー | sidebar_button_bg、sidebar_button_hover_bg、sidebar_row_hover_bg、sidebar_row_pressed_bg、sidebar_row_active_bg、sidebar_row_active_border |
| 選択とアクセント | selected_bg、selected_text、accent、accent_hover、on_accent(アクセントの上の文字とアイコン)、danger(破壊的な操作とエラー) |
| 文字 | text、secondary_text、muted_text |
| その他 | scrollbar_thumb(オーバーレイのスクロールバー)、spelling_error(スペルミスの下線) |
ターミナルの配色に合わせる では面と文字がターミナルの背景の上へ移りますが、accent、accent_hover、on_accent、selected_bg、danger、spelling_error は設計どおりの値のままです。スキーム自身の青は、そのスキームの背景の上では読みにくいことが多いからです。合わせたい場合はここで設定してください。
環境変数
ThinkTerm が起動するすべての端末で、次が設定されます。
| 変数 | 値 |
|---|---|
THINKTERM | 1 |
THINKTERM_VERSION | ThinkTerm のバージョン |
TERM_PROGRAM、TERM_PROGRAM_VERSION | WezTerm とバージョン。WezTerm を認識するツールが動き続けるよう残しています。ThinkTerm を見分けるには THINKTERM を調べてください |
WEZTERM_PANE | ペインの ID。thinkterm cli はこれを既定のペインとして使います |
WEZTERM_UNIX_SOCKET | マルチプレクサのソケット。ThinkTerm が持っている場合のみ |
THINKTERM_MUX_SERVER_ID | ペインが動いているマルチプレクサ。thinkterm tui はこれを使い、自分が中で動いているサーバーへの接続を断ります |
THINKTERM_CONFIG_FILE、WEZTERM_CONFIG_FILE | 読み込まれた設定ファイル。読み込んだ場合のみ |
THINKTERM_CONFIG_DIR、WEZTERM_CONFIG_DIR | その設定ファイルのあるディレクトリ |
ThinkTerm が読む変数は次のとおりです。
| 変数 | 効果 |
|---|---|
THINKTERM_CONFIG_FILE、WEZTERM_CONFIG_FILE | 読み込む設定ファイル。探索順 を参照 |
THINKTERM_DISABLE_SOUND | 何か値を設定すると、設定ウィンドウの選択にかかわらず通知音が鳴らなくなります |
THINKTERM_UPDATE_TOKEN | アップデート確認で送る GitHub トークン。匿名の回数制限を外すためのものです。環境にある GITHUB_TOKEN が送られることはありません。アップデート を参照 |
THINKTERM_NO_PRIVACY_DISCLAIM | セッションサーバーに独立した macOS のプライバシー識別子を与える処理を省きます。macOS でのフォルダアクセス を参照 |
THINKTERM_TUI_CONFIG | thinkterm tui が設定を読む場所。TUI を参照 |
WEZTERM_LOG | ログの絞り込み。WezTerm と同じです |
関連
- ウィンドウ — 外観とターミナルのページが画面の何を変えるか
- キーボードとコマンド — コマンドパレットとその設定ページ
- リモート — ホスト帳と、ローカル端末をセッションサーバーに置くこと
- プラグイン — プラグインが加えるものと、そのオン・オフの場所
- アップデート —
check_for_updatesと、アップデートの流れの残り - プライバシーとセキュリティ — ThinkTerm がいつ、何をネットワークへ送るか
