コンテンツにスキップ

テーマ

Paneflow の同梱テーマを Settings または paneflow.json から選びます。現在は One Dark と PaneFlow Light が同梱され、再起動なしでホット リロードされます。

Paneflow は paneflow.json のトップレベルにある "theme" 値を 読みます。現在の同梱テーマは One DarkPaneFlow 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 を直接編集することもできます。

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 つの経路があります。

  • イベント駆動パス。 notify watcher が設定ディレクトリを監視し、 ファイル イベントを 300 ms debounce します。
  • ポーリング フォールバック。 OS watcher が起動できない場合、 Paneflow は 500 ms の mtime polling に戻ります。

watcher または fallback が発火した次の render frame で新しいパレットが 反映されます。自分の環境で静かに失敗する場合は、 トラブルシューティング に一般的な原因があります。

テーマとタイポグラフィのキーは paneflow.json からホット リロードされます。window_decorations は起動時に一度だけ読まれるため、 変更には Paneflow の再起動が必要です。

カスタム テーマを作るには?

ユーザー提供のカスタム テーマ ファイルはまだサポートしていません。 Paneflow は theme.json を読み込まず、paneflow.json にも カスタム パレット形式はまだありません。

特定のパレットが必要なら、ユースケースとパレットを添えて GitHub issue を 開いてください。同梱テーマは src-app/src/theme/builtin.rs で調整され、 各 release に含まれます。

Paneflowの作者 Arthur Jean によって執筆されました。