コンテンツにスキップ

Paneflow 0.8.1: Windows でも libghostty-vt が Alacritty を置き換え

公開日
更新日

バージョン 0.8.1 について。 この記事は 2026 年 7 月の Windows 移行を記録したものです。以下の terminal.backend 設定は当時のバージョンに適用されます。Paneflow 0.17.4 は配布対象の全プラットフォームで Ghostty を使用し、Alacritty は含まれていません。今インストールする場合は、Windows インストールガイドを参照してください。

Paneflow 0.8.1 では、公式 Windows x64 ビルドの標準ターミナルエンジンが libghostty-vt になりました。terminal.backend を省略するか auto に設定すると、新しいセッションは Ghostty を使用しました。

この移行は Paneflow 0.8.0 の Linux 対応に続くものです。ターミナル出力の解釈と入力のエンコードを変更し、シェルとの接続には ConPTY、描画には GPUI を引き続き使用しました。

青とラベンダー色の風景に並ぶ Ghostty のアプリアイコンと Windows ロゴ

ConPTY がシェルを接続し、Ghostty がターミナルを解釈

Paneflow は portable-pty を通じて Windows の擬似ターミナルを開きます。内部では ConPTY を使用し、シェルの UTF-8 出力を libghostty-vt に渡します。エンジンはターミナルシーケンスを解釈し、画面、カーソル、スクロールバックを管理します。Unicode 文字、折り返し、サイズ変更後のテキスト再配置、キーボードとマウスのエンコードも処理します。

Paneflow はその状態を Rust のスナップショットにコピーし、GPUI で描画します。コピーによって描画用データを Ghostty のネイティブメモリから切り離すため、後からターミナルが更新されても、そのフレームで使うデータは無効になりません。

Paneflow に組み込むのは Ghostty のターミナルライブラリです。ペイン、セッション、プロセス管理、永続化、インターフェースは Paneflow が担当します。

Windows の入力とセッション終了

移植ではエンジンの前後の処理にも対応しました。Windows のセッションホストはサイズ変更要求をまとめ、終了前に残りの出力を読み取り、読み取りスレッドの終了を待ちます。複数ペインが同時に動く場合も、待機中の出力量を制限します。

入力は AltGr、デッドキー、入力方式エディター(IME)で確定したテキスト、ペースト、クリップボード、マウス、フォーカスイベントに対応しています。0.8.1 ではキー変換と ConPTY を通る Shift+Enter の処理も修正し、このショートカットを使うエージェントで複数行の入力を保持しました。

出力が多い場合の不要な描画を避けるため、再描画通知をまとめます。これらは入力、表示、終了に関する変更であり、ペインやワークスペースの整理方法は変わりません。

エンジンは Windows 実行ファイルに組み込み済み

公式 x64 実行ファイルは ghostty-vt-static.lib を静的リンクします。Ghostty や Zig のインストール、Ghostty DLL の追加は不要です。MSI はエンジンを組み込んだ Paneflow をインストールします。

リポジトリには Ghostty のソースコミットとネイティブツールチェーンを固定し、ヘッダー、Rust バインディング、ビルドメタデータ、ライセンス、チェックサムも記録しています。CI はネイティブアーカイブを Windows アプリケーションとは別に再ビルドし、アプリケーションが想定した成果物を使っているか確認します。

固定には保守も伴います。エンジンを更新する際は、ネイティブアーカイブと対応するバインディングを一緒に確認する必要があります。

0.8.1 では Alacritty に切り替え可能

0.8.1 の公式 Windows x64 ビルドでは、auto と ghostty が Ghostty を選択しました。新しいセッションで以前のエンジンを使うには、paneflow.json に alacritty を設定できました。

{
  "terminal": {
    "backend": "alacritty"
  }
}

設定は新しく作成するセッションだけに適用されました。シェルプロセスの起動前に Ghostty が失敗すると、Paneflow は一度だけ Alacritty にフォールバックできました。起動後はセッションのエンジンを維持し、復旧のために別のシェルを起動したり、ワークスペースデータを削除したりする必要はありませんでした。

この移行の対象は Windows x64 MSVC で、Linux x86_64 と ARM64 と同じターミナルコアを使うようになりました。他の Windows ターゲットと macOS は、このバージョンでは Alacritty のままでした。

このワークフローを続ける

すべての記事

次のエージェントを Paneflow で起動しよう。