
Ghostty 1.4.0リリース、性能・メモリ改善とKitty graphics完全対応
Ghostty の開発チームは、ターミナルエミュレーター Ghostty 1.4.0 をリリースした。性能とメモリの大幅な改善に加え、Kitty graphics のアニメーションや相対配置を含む仕様への完全対応や、SSH 連携の改善などが含まれる。
Ghostty 1.4.0 は、性能とメモリの大幅な改善を含むメジャーリリースである。リリースには 7 months の作業期間で、172 contributors による 2,889 commits が含まれる。Kitty graphics の実装は、アニメーションと相対配置を含めて仕様の 100% を網羅するとされ、Ghostty は全仕様を実装した最初の非 Kitty ターミナルと説明されている。
性能とメモリの改善
macOS と 64-bit Linux では、非表示部分のスクロールバックを圧縮できるようになった。典型的なテキスト中心のスクロールバックでは、物理メモリが 70% to 90% 削減された。既定のスクロールバック上限は、ターミナルごとに 10 MB から 50 MB へ引き上げられた。
macOS では、カーネルが pty からの読み取りを約 1 KiB に制限する。Ghostty は pty の読み取りを 1 つのスレッドで行い、パース処理は別のスレッドで行うようになった。GTK アプリは GtkGLArea を使わず、独自のスレッドで EGL により描画する。
主なベンチマーク結果は以下のとおりである。
- 64 MiB のイメージデータの解析は、x86_64 Linux で 16x 高速化された。
- プレーン ASCII のパーサーベンチマークは、128 MB/s から 725 MB/s に向上した。
- macOS(M4 Max)における end-to-end I/O スループットは、Ghostty 1.3.x と比べて 25% to 55% 向上した。
- macOS で 150 MB のテキストファイルを cat する時間は、1.5 seconds から 566 milliseconds に短縮された。
- macOS で新しい空のターミナルのページメモリは、Ghostty 1.3.1 の 128 KiB から 16 KiB に減少した。
- 1 つの表示タブと 20 の非表示タブ(macOS)では、非表示タブが GPU リソースを解放することで GPU メモリが 385 MiB から 18 MiB になった。
機能追加と設定変更
SSH 関連では、ghostty +ssh CLI アクションが追加された。これは ssh のドロップイン・ラッパーとして動作し、リモートホストに Ghostty の terminfo をインストールする。Kitty clipboard protocol(OSC 5522)は、macOS と GTK の両方で実装された。
GTK では、分割されたペインをドラッグして並べ替えられるようになった。新しい drag-handle の設定により、ハンドルを表示するタイミングを制御できる。
設定とキーバインドの主な変更点は以下のとおりである。
- macOS の copy-on-select は、既定値が true から none に変更された。copy-on-select = clipboard は、システムのクリップボードにのみコピーする。
- macOS で cmd+arrow_up と cmd+arrow_down が、再び jump_to_prompt を実行する。
- GTK では、既定の ctrl+shift+page_up と ctrl+shift+page_down でタブを左右に移動できる。
- scrollback-limit の設定名は scrollback-limit-bytes に変更され、scrollback-limit-lines が追加された。
- middle-click-action、move_tab_to_new_window、link-osc8(既定値 true)が追加された。
- 新しい CLI コマンドとして +explain-config が追加された。
- プロセスには GHOSTTY_SURFACE_ID 環境変数が渡されるようになった。
- スクロールバック検索は、最初または最後の一致を越えると先頭または末尾に戻る。
- vt-window-resize-allowed と vt-xt-checksum-report が追加され、どちらも既定では無効である。
互換性と動作要件
Ghostty 1.4 は GTK 4.18 と libadwaita 1.7 を必要とし、以前の GTK 4.14 と libadwaita 1.5 から引き上げられた。Ubuntu 24.04 LTS はこの要件を満たさない。macOS 27 に対応する一方、最小動作環境の macOS 13 (Ventura) は変わらず対応している。
非推奨の設定は現時点では互換性が保たれているが、無視された場合は将来のリリースで動作しなくなる可能性がある。DMABUF をエクスポートできない GPU ドライバーでは、CPU によるフレームコピーに切り替わる可能性があり、その場合は処理が遅くなる可能性がある。
テーマは release-20261019-151001-86a776d に更新され、356 new bundled themes が追加された。既存の 10 themes は、上流で色が変更された。
セキュリティ修正と不具合修正
本リリースでは、GHSA-4hwh-wx3w-3fqg、GHSA-mhff-mv4q-fp63、GHSA-hcr9-7hcr-mjm8、GHSA-hp9c-qp4q-cpw3、GHSA-w9q4-5jvv-mcv4、GHSA-2r63-vmw6-3m3c、GHSA-cw69-wm67-5pv8、GHSA-mfw9-xcr3-7gfp、GHSA-v8cw-fg4j-jcc4、GHSA-mxqx-236q-wrv7 を含む複数のセキュリティアドバイザリが修正された。既定のスクロールバック上限は、GHSA-w9q4-5jvv-mcv4 の影響を受けるとは知られていない。
不具合修正としては、コメントや空行の直後に内部バッファの境界があると設定の解析で後続の設定が無視される問題、長時間稼働後にレンダラーが毎フレーム全体の端末状態を再構築して性能が低下する問題、自動生成される設定ファイルが空になりテンプレートが含まれない問題が修正された。
筆者の見立て
- Ghostty 1.4.0 のレンダリングはトリプルバッファリングになったことで、ティアリングが大きく減ると予想している。
- EGL によるレンダリングへの変更は、ほぼすべての利用者にとって目に見えない影響になると予想している。
この記事は元記事の事実のみに基づいて自動生成されました。
出典
- 媒体: Ghostty
- タイトル: 1.4.0 - Release Notes
- URL: https://ghostty.org/docs/install/release-notes/1-4-0