Paneflow は paneflow.json のトップレベルにある "theme" 値を
読みます。現在の同梱テーマは One Dark と PaneFlow Light です。
このキーを省略する、null にする、または Settings からリセット
すると、デフォルトの One Dark が使われます。
TL;DR。 UI では Settings -> Themes を使います。設定ファイルでは
paneflow.jsonに"theme": "One Dark"または"theme": "PaneFlow Light"を指定します。テーマ変更は保存後に ホット リロードされ、アプリの再起動は不要です。
アクティブなテーマを切り替えるには?
Settings -> Themes を開き、3 つのセグメントから選びます。
| セグメント | Paneflow が保存する値 |
|---|---|
| Light | "PaneFlow Light" |
| Dark | "One Dark" |
| System | クリック時点の OS 外観に対応する具体的なテーマ。ライト外観なら "PaneFlow Light"、それ以外は "One Dark"。 |
System は、現時点では OS 変更を追従し続ける永続モードとしては
保存されません。選択すると、Paneflow は上の具体的な同梱テーマ名
のどちらかを書き込みます。
paneflow.json を直接編集することもできます。
{
"$schema": "https://github.com/arthjean/paneflow/raw/main/schemas/paneflow.schema.json",
"$schemaVersion": "1.0.0",
"theme": "PaneFlow Light"
}設定ファイルの場所:
| OS | パス |
|---|---|
| Linux | ~/.config/paneflow/paneflow.json |
| macOS | ~/Library/Application Support/paneflow/paneflow.json |
| Windows | %APPDATA%\paneflow\paneflow.json |
スキーマには正規の表記が載っています。実行時の名前検索は
大文字小文字を区別しませんが、正規名を使うとエディタ補完と
レビュー diff がきれいになります。未知の名前は One Dark に
フォールバックし、次回のファイル parse 時にログ警告を出します。
認識されるキーの全体は
設定スキーマ にあります。
Paneflow には今どのテーマが同梱されていますか?
現在の build では stable です。
| 名前 | 説明 |
|---|---|
"One Dark" | ダーク テーマ、デフォルト。Atom の One Dark パレットを元に、Paneflow のターミナルとアプリ chrome 向けに調整しています。 |
"PaneFlow Light" | 白い作業面、ライトなアプリ shell、専用のライト構文パレットを持つライト テーマ。 |
Paneflow のテーマは 36 個のターミナル カラー スロットを定義します。 24 色の ANSI パレット(8 色相 x 3 強度: normal、bright、dim)、 5 個の基本背景/前景色、カーソル、選択色と派生した選択前景色、 スクロールバー thumb、リンク テキスト、2 個のタイトルバー色です。 Paneflow は Diff surface 用に別の構文パレットも保持します。
選択前景色は手作業で固定していません。テーマ読み込み時に、 選択背景に対して APCA Lc >= 45 を満たすまで Paneflow が再計算し、 選択されたテキストを読みやすく保ちます。
テーマは何に影響しますか?
テーマはターミナルの ANSI 色だけではありません。
- ターミナル背景、前景、カーソル、選択、スクロールバー、リンク、ANSI パレット;
- アクティブ テーマから派生するアプリ chrome パレット;
- Markdown ペインとテーブル;
- Diff と Review の構文色;
- 対応プラットフォームでのタイトルバーとネイティブ material。
関連する 2 つの設定はテーマ名とは別です。
terminal.cursor_colorはターミナル カーソルだけを上書きします。nullはアクティブ テーマのカーソル色を使います。commands[].workspace.colorは workspace template の色であり、 テーマ accent ではありません。
テーマのホット リロードはどう動きますか?
paneflow.json を保存すると、Paneflow はアクティブ テーマをその場で
再解決します。再起動もウィンドウ リロードも不要です。
リロードには 2 つの経路があります。
- イベント駆動パス。
notifywatcher が設定ディレクトリを監視し、 ファイル イベントを 300 ms debounce します。 - ポーリング フォールバック。 OS watcher が起動できない場合、
Paneflow は 500 ms の
mtimepolling に戻ります。
watcher または fallback が発火した次の render frame で新しいパレットが 反映されます。自分の環境で静かに失敗する場合は、 トラブルシューティング に一般的な原因があります。
テーマとタイポグラフィのキーは
paneflow.jsonからホット リロードされます。window_decorationsは起動時に一度だけ読まれるため、 変更には Paneflow の再起動が必要です。
カスタム テーマを作るには?
ユーザー提供のカスタム テーマ ファイルはまだサポートしていません。
Paneflow は theme.json を読み込まず、paneflow.json にも
カスタム パレット形式はまだありません。
特定のパレットが必要なら、ユースケースとパレットを添えて
GitHub issue を
開いてください。同梱テーマは src-app/src/theme/builtin.rs で調整され、
各 release に含まれます。