Ghostty 1.2.0

2025 年 9 月 15 日にリリースされた Ghostty 1.2.0 のリリースノート。

Ghostty 1.2.0 は、2,676 コミットにわたる 149 人のコントリビューターによる6 か月の作業です。このリリースを可能にする手助けをした、すべてのコントリビューター、メンテナー、コミュニティモデレーター、翻訳者、パッケージャー、そしてユーザーに感謝します。このリリースは、Ghostty のすべての部分に対する大幅な改善を含みます。数百のバグ修正を含みます。

セキュリティ

  • macOS:GHSA-q9fg-cpmh-c78x。Ghostty が、他の脆弱なアプリや悪意あるソースからの権限昇格の踏み台として使われる問題を修正しました。 これには Ghostty の外側の脆弱なアプリケーションがこの連鎖を引き起こす必要があります。したがって、これは低リスクのアドバイザリと考えられます。

ハイライト

新しいアプリアイコン

PR:#7638 #8038

macOS では、Ghostty 1.2 が新しい macOS Tahoe 互換アイコンを同梱します(下記参照)。このアイコンは新しい Icon Composer アプリで構築され、macOS の新しいライト・ダーク・半透明・カスタムティンティングのすべてのスタイルで機能するようになっています。

GTK(Linux と FreeBSD)では、Ghostty 1.2 が 多く のデスクトップ環境にうまくマッチする新しいアイコンを同梱します。GNOME のスタイリングを採用しました。それは広く使われており、多くの環境で不自然にならないためです。

Note

デスクトップ環境の多様性のため、Linux と BSD に向けた完全で普遍的なアイコンを作ることは不可能です。このアイコンが以前のアイコンより多くの環境で自然に見えること、そして以前のアイコンが示された macOS 中心の視点という否定的な印象を避けられると考えています。

コマンドパレット

PR:#7153 #7156

Ghostty には、新しいターミナルの作成、フォーカスの移動、テキスト選択の更新、コピーとペーストなど、大多数のキーバインドアクションを呼び出せるコマンドパレットが備わりました。

コマンドパレットの最初のキーバインドは、GTK では ctrl+shift+p、macOS では cmd+shift+p です。toggle_command_palette キーバインドアクションで任意のキーバインドへ再バインドできます。コマンドパレットは、macOS と GTK のメニューバーからもアクセスできます。

コマンドパレットには、利用可能なほぼすべてのキーバインドが表示されます。Ghostty に新しいキーバインドアクションが追加されると、それは同同時にコマンドパレットにも自動的に表示されます。これは即座に役立ちます。キーバインドにバインドされていないアクションにもアクセスできるのです。まれにしか使わないアクションに有用です。

たとえば、私ならコマンドパレットから move_tab アクションをしばしば使いますが、バインドするほどではありません。

将来の Ghostty バージョンでは、コマンドパレットから利用可能な機能を拡張し続けます。たとえば現在は、ターミナルプログラムがコマンドパレットからそのアクションを直接提示できる新しいターミナルシーケンス仕様への取り組みが進行中です(たとえば、Neovim のコマンドをコマンドパレットでフルに利用できる可能性)。

Quick Terminal のサイズ

PR:#2384

quick terminal の既定サイズを設定する新しい quick-terminal-size ができました。これは最も要望の大きかった機能の一つです。

quick-terminal-size 設定は、パーセンテージもピクセルもサポートします。値を 1 つ指定した場合、それは主軸のサイズを意味します。値を 2 つ指定した場合、2 番目の値は副軸を指定します。下の例はそれを示します:

# Percentage, primary axis only
quick-terminal-size = 25%

# Pixels work too, primary axis only
quick-terminal-size = 600px

# Two values specify primary and secondary axis
quick-terminal-size = 25%,75%

# You can also mix units
quick-terminal-size = 300px,80%

主軸 は、quick-terminal-position 設定により決まります。top と bottom の値では主軸は高さです。left と right の値では幅です。center の場合は、モニターの向きに依存します:横では高さ、縦では幅です。

サイズの指定に加え、quick terminal のサイズは実行時に変更可能になりました。Ghostty の実行中は、そのサイズを記憶します。以前のバージョンではサイズは固定されており、モニターのサイズや解像度により実際の問題が起こっていました。

GTK の 2 つのスクリーンショットの例を下に示します:

SSH 改善(進行中)

PR:#7608

Ghostty は、Ghostty の terminfo のサポートへまだ更新されていないリモートマシンを含めた SSH との互換性を高める、オプトインのシェル統合機能を備えました。

新しい ssh-env オプトイン機能は、SSH セッション向けに TERM 変数を自動的に xterm-256color に設定します(セッションの品質向上のため、他のいくつかの環境変数も転送します)。これは厳密には正しくありませんが、多くの場合、その場しのぎの解決は害より利が大きいものです。

新しい ssh-terminfo オプトイン機能は、Ghostty の terminfo をリモートマシンへ自動的にコピーし、正しい xterm-ghostty TERM 設定を使用したり、リモートプログラムが Ghostty のあらゆる機能を(当方がサポートしていない xterm の機能を避けつつ)フルに活用できるようにします。

これらの機能はどちらも shell 内の ssh コマンドをオーバーライドする必要があるためオプトインです。この操作はリスクゼロではないため、ユーザーが自分のしていることを理解しているかを確かめたいところです。この点を安定かつ信頼できるように努めていますが、対応しきれないエッジケースもあります。したがって、これはまだ work-in-progress であり、フィードバックを歓迎します。

レンダラーの再構築

PR:#7620

レンダラーバックエンドを再構築し、OpenGL でも Metal でも共通のコアロジックを使うようにしました。この変更により、将来この領域のコード改善をより素早く行えるようになります。また、多くの機能が Metal には実装され OpenGL には実装されない事態が課題になりつつあったため、両バックエンド間の機能上の対等性を確保するのにも役立ちます。

この再構築の過程で、OpenGL バックエンドにいくつもの改善が行われ、より効率的になり、Metal バックエンドとほぼ機能的に対等になりました。

これにより Linux ユーザーは、適切なリニアアルファブレンディングを得られるようになり、特定の背景色と前景色の組み合わせでテキストの縁に現れていたアーティファクトが解消されました。Linux 上の既定の alpha-blending 設定値は linear-corrected になり、テキストに補正ステップを施したリニアブレンドを行うことで、見た目の太さが人々がなじんだ非線形ブレンドと一致します。

この再構築により、custom shaders をホットリロードできるようにもなりました。

カスタムカーソルシェーダー

PR:#7648

custom shaders は terminal cursor についての情報を受け取れるようになり、trail や smear のようなカスタム効果とアニメーションをカーソルに適用できます。

下の例は、カーソルが移動すると後ろに trail を残す "cursor blaze" shader を示します:

カーソルシェーダーと custom shaders 一般は万人向きではありませんが、コミュニティから信じられないほど創造的なシェーダーが届いています。多くの人が楽しんでいます。単純な目の保養を超えて実用にもなりえます。たとえばカーソルが動いたときにより追いやすいようにするなど(ただしそれほど派手でなくても)。

いずれは first-party のアニメーションカーソルを追加する計画で、カーソルを追いやすくするためだけに custom shader の追加のパフォーマンスコストを負担しなくても済むようにします。しかし、custom shaders へのこの機能追加は簡単なつなぎ策でした。しかも、first-party のアニメーションカーソルを追加した後でもこれは有用であり続けます。組み込みのオプションでは実現できない、きわめて特定的なカスタム効果を望むユーザーもいるでしょうから。

端末背景画像

PR:#3645

端末に background-image 設定で背景画像を指定できるようになりました。この画像を望みどおりに見せるための一連の追加設定も用意されています:background-image-opacity、background-image-position、background-image-fit、background-image-repeat。

Warning

Ghostty 1.2.0 では、背景画像はターミナルごとに VRAM へ複製されます。十分に大きな画像と多数のターミナルでは、メモリ使用量(とりわけ VRAM)が大きく増える可能性があります。将来の Ghostty リリースでは、この問題を避けるため画像テクスチャを複数の端末で共有する予定です。

グラフィカルプログレスバー

PR:#7975 , #8477

Ghostty は、ConEmu OSC 9;4 シーケンス を認識し、GUI ネイティブのプログレスバーをレンダリングするようになりました。

当方が把握するかぎり、Ghostty は macOS でこの機能をサポートする最初のターミナルエミュレーターです。Linux と Windows では、Ghostty 以外の複数のターミナルがすでにこの機能をサポートしています。

プログレスバーは、成功/エラー状態、完了までの数値的進捗、不確定な進捗(パルス)などを表示できます。Amp のようなプログラムはすでに今日このプログレスバーを利用して活動を表示しており、下記のとおりです:

グラフィカルプログレスバーは現在、Windows、Linux、macOS 上の複数のターミナル、さらに systemd や Zig CLI のような主要なターミナルプログラムでサポートされています。ターミナルのサポートが広がるにつれ、より多くのプログラムがこの機能を使い始めることを期待しています。

現在、Ghostty は端末の上部にシンプルで基本的なプログレスバーを表示します。将来のバージョンでは、この進捗をタブヘッダー、タスクバー、Dock アイコンなどにも表示するよう拡張します。

Note

進捗報告 OSC 9;4 シーケンスは iTerm2 の通知シーケンスと衝突します。Ghostty はその両方のシーケンスをサポートする唯一のエミュレーターです。対処として、OSC 9;4 は常に進捗報告としてパースされます。つまり、;4 で始まる通知を通知として送ることはできません。きわめて特定的なテキストであることと、より推奨される OSC 777 通知シーケンスのより広いサポートを考えれば、これは合理的なトレードオフだと考えます。

フォールバックフォントサイズ調整

PR:#7840 , #7953

Ghostty 向けに設定したフォントが、レンダリングする必要のある文字のグリフを持たないとき、その文字を持つシステム上のフォントを探します。これらのフォントのサイズは、プライマリフォントとよりよく一致するよう調整されるようになりました。これは CSS の font-size-adjust に似ています(ただし同一ではありません)。

これはフォントのサイズの差を補い、全般的に一貫した見た目を作ります。複数の書記体系を使うユーザーにも役立ちます。たとえば CJK テキストは、文字の間の縦の「溝」を避けられるようになりました。

Ghostty 1.1.3(従来)Ghostty 1.2.0(新)

上記の例は微妙な違いです。単一行で多くの異なるフォントフェイスが使われるとき、その違いはより顕著になります。正しい方向にいることを確かめるため、コミュニティの多くの中国語読者に意見を聞きました。フィードバックは新しい挙動に強く肯定的な傾向でした。

将来は、フォントごとにサイズを指定できるようにフォント設定を作り直したり、フォールバックフォントと同様に設定されたフォントのサイズを自動で合わせられるようにする計画です。

多数の新しい同梱グリフ

PR:#7732 , #7755 , #7761

さまざまな新しい文字が、フォントを使用する代わりに Ghostty によって直接描画されるようになりました。グリフを直接描画することで、セルやお互いと正しく整列することを保証できます。

新たにサポートされたグリフのごく一部の例が下に示されています。グリフがセル端に沿って隙間なく完璧に整列していることに注目してください。こうしたグリフを UI 要素として使用する TUI アプリケーションにとって、このような pixel-perfect rendering はきわめて重要です。

Ghostty 1.1.3(従来)Ghostty 1.2.0(新)

同梱 Nerd Font の改善

PR:#7809 、続くいくつかの軽微な問題修正の PR

同梱の Nerd Font シンボルは、Regular、Bold、Italic、Bold Italic それぞれにパッチ済みの JetBrains Mono を使う代わりに、独立した symbols-only フォントで提供されるようになりました。そして同梱の JetBrains Mono は 4 つの静的フォントではなく可変フォントを使います。これにより Ghostty に埋め込まれるフォントは以前より大幅に小さくなります。

これはまた、より新しい Nerd Fonts symbols のコピーを使うようになったことを意味するため、新しいシンボルも正しくレンダリングできるようになります。

しかし大きな変更は、Ghostty が Nerd Fonts シンボルを公式の Nerd Fonts patcher と同じやり方でセルサイズに合わせて自動リサイズするようになったことです。これは、普通のパッチなしのフォントで Ghostty を使う体験が、以前にパッチ済みフォントで使う体験とほぼ、あるいは完全に同じになることを意味します。

つまり、Ghostty ではパッチ済みフォントを使う 理由はもうありません。どちらのやり方でも powerline グリフはセルサイズに合わせて適切にスケールされるからです。

キーバインドの再構築

PR:#7320

W3C key event code 仕様 に基づき、キーバインドをより一貫したものにするため再構築しました。この作業は、OS やキーボードレイアウトをまたいでより予測可能で機能するキーバインドをもたらすはずですが、同時に 既存のキーバインドを壊しうるいくつもの重要な挙動変更を伴います。

シングルコードポイントの文字はすべて、キーボードレイアウトが生成する文字(layout-dependent)に一致するようになりました。つまり ctrl+c は、US standard キーボード上の物理的な c キーに一致しますが、Dvorak レイアウトでは i キーと一致します。国際文字も同様に機能します。codepoint は大文字小文字を区別せず、Unicode case folding によって一致します(Windows と macOS がキーボードショートカットを扱う方法と同じです)。

それ以外のキー名はすべて物理キーに一致し、キー名は W3C key codes 準拠の名前になっています。たとえば:ctrl+KeyA は、US physical レイアウトの a キーに常に一致します(KeyA の名前が US キーボードと一致するのは仕様で義務づけられたことで、私たちの裁量ではありません)。ここで言う「物理」とは、OS ないし GUI フレームワークが送る keycode のことです。ハードウェアレベルの remap を行うプログラムでこれをオーバーライドできますが、ソフトウェアレイアウトはそれをしません。

上記の結果、physical: prefix は廃止されました。物理キーバインドは、上述の multi-codepoint をキー名として用いる方法で明示的に指定されるようになりました。以前の physical: キーバインドは引き続き機能しますが、新しい形式へ更新することが望まれます。

後方互換のため、Ghostty の既存のキー名で W3C の名前と一致しないものは、その W3C 相当の名前にマッピングされます。たとえば、grave_accent は backquote にマップされます。

端末ベル

PR:#7099 , #5326 , #7087 , #7101 , #7118 , #7148 , #7842 , #7533

macOS と GTK 両方の Ghostty は端末ベル(ASCII BEL または 0x07)をサポートします。ベルが鳴ったときの Ghostty の挙動は、bell-features 設定でカスタマイズできます。デフォルトは最も控えめで有用な設定をしています。より控えめでないオプションは bell-features で有効化できます。

macOS 上では、既定でベルは端末のタイトルにベル emoji(🔔)を表示し、Dock アイコンを一度跳ねさせ、Dock とアプリスイッチャーで見える Ghostty アイコンにバッジを付けます。オーディオは発せられません。

GTK 上では、既定でベルは端末のタイトルにベル emoji(🔔)を表示し、ウィンドウに注意を求めているとマーキングします。“注意を求める”ことの正確な挙動は、ウィンドウマネージャーまたはデスクトップ環境によって決まります。オーディオは発せられません。

GTK は既定でオフのオーディオベルもサポートし、bell-features=audio で有効化できます。bell-audio-path 設定でカスタムオーディオを再生することさえ可能です。bell-features=system 機能(既定オフ)は“システムビープ”を使用し、普通はオーディオと同じく 中央の システム設定により構成されます。

GTK は境界線を点滅させるアニメーションもサポートし、bell-features=border で有効化できます。これは他のターミナルエミュレーターの "visual bell" 機能に似ています。

将来の Ghostty バージョンでは、macOS にもこれらのベル機能の対等性を提供します。

ターミナルエミュレーションの互換性

Ghostty 1.2 は、コアターミナルエミュレーションの数十の改善を含み、他のターミナルエミュレーターでのように Ghostty 内でもターミナルプログラムが一貫して正しく機能するようにします。関連する変更の完全な一覧は、terminal capabilities セクションを参照してください。

これらの改善は、きわめて軽微なもの(#7443 :野外ではいかなる既知のプログラムも使わないシーケンス)から、きわめて重要なもの(#8590 :実在のプログラムのいくつかを壊した)まで及びます。いずれにせよ、Ghostty は terminal emulation の互換性をきわめて真剣に捉えており、Ghostty が存在しうる広範な terminal features をサポートできるよう努力しています。

これを正しく行うのは口で言うほど容易ではありません。terminal emulation 機能の中で正式に仕様化されているのはごく一部であり、大部分は terminal emulators のふるまいに基づく de facto 標準によって定義されています。加えて、一元的な標準体は存在しないため、プロトコルどうしが衝突することが多く、どちらのプロトコルがより重要か、またはどうやって両方をサポートするよう COMPROMISE するかを考える必要があります。

たとえば、プログレスバー シーケンスは iTerm2 のデスクトップ通知シーケンスと衝突します。折衷案として、あいまいでないプログレスバーシーケンスは通知よりも優先されます。つまり、プログレスバーを設定するこのシーケンスそのものを通知として送信することはできません。これは Ghostty が、progress bars と iTerm2 デスクトップ通知の両方をサポートするほぼ唯一のターミナルであることを可能にする妥协です。1

macOS:Tahoe サポート

Ghostty 1.2 は macOS 26(Tahoe)をサポートします。

macOS 26 上で実行すると、Ghostty は新しい Liquid Glass スタイルを使用します。アプリのアイコンは更新され、ライト、ダーク、ティンティングなどの macOS 26 の機能に対応しています。メニューバー内のアイコンなど、多くの UI 細部は新しい macOS スタイルとよりよく一致するよう更新されました。ビジュアルの対応に加え、いくつもの互換性問題も修正されました。

Ghostty 1.2 は、macOS 13(Ventura)を含む以前の macOS バージョンと完全な互換性を保っています。

Note

Ghostty 1.1.x は macOS 26 上で機能します。macOS SDK の仕組み上、Ghostty 1.1.x は Tahoe 以前の UI スタイリングを使います。互換性問題はまだいくつか残りますが、近々 Ghostty 1.2 へアップグレードできない場合でも概ね機能します。

macOS:閉じる操作の元に戻す/やり直す

PR:#7535

端末を閉じるすべての操作が、標準の macOS キーバインド(Cmd+Z と Cmd+Shift+Z、再バインド可)による元に戻す/やり直しに対応するようになりました。これには、スプリットを閉じる、タブを閉じる、ウィンドウを閉じる、すべてのウィンドウを閉じる、他のタブを閉じるなどが含まれます。

元に戻す/やり直しは、最近閉じた端末を設定可能な時間(既定 5 秒)の間非表示のまま実行し続けることで実現しています。この間中、閉じる操作を取り消すと、端末は以前と同じ場所で再オープンされます。端末は常に実行し続けていたため、正確な端末の状態が復元されます。

端末の取り消しが可能な時間は undo-timeout 設定で構成できます。

将来の Ghostty バージョンでは、スプリットのリサイズやタブの移動など、元に戻す/やり直しできる GUI インタラクションを拡張する予定です。

macOS:Apple Shortcuts

PR:#7634

macOS 上の Ghostty は Apple Shortcuts と統合しました。macOS 標準の、スクリーンショットの撮影やウィンドウ移動といった Ghostty 固有でないショートカットアクションと組み合わせれば、Ghostty は macOS 上でスクリプト化できます。

Apple Shortcuts はグローバルショートカットへバインドしたり、デバイス間で同期するなど、たいへん強力なツールです!

この機能は、フルのクロスプラットフォーム Ghostty API という将来の計画に取って代わるものではありません。この macOS 固有の機能は macOS ユーザー向けの多くの用例に対応していますが、将来のバージョンでは代わりのスクリプティング選択肢も構築する予定です。

GTK:クイックターミナル

PR:#4624

クイックターミナルは、Wayland 上の Linux で広くサポートされた wlr-layer-shell プロトコルへアクセスしながらサポートされるようになりました。クイックターミナルは macOS では Ghostty 1.0 から利用可能です。

念のため、「クイックターミナル」とは、toggle_quick_terminal にバインドされた単一のホットキー(Ghostty がフォーカスされていなくても機能するグローバルホットキーのことが多い)で、singleton の端末ウィンドウを表示・非表示にできる Ghostty の機能です。俗に「ドロップダウン端末」や「DOOM スタイル端末」とも呼ばれます。

クイックターミナル(Linux 版)はタブとスプリットを完全にサポートします。

GTK:グローバルキーバインド

PR:#6051

GTK アプリは、Ghostty がフォーカスされたアプリケーションでない間でも機能するグローバルキーバインドをサポートするようになりました。これらのキーバインドは Ghostty 設定内で global: プレフィックス付きで定義されます。

グローバルキーバインドには、システム上に動作する XDG desktop portal のインストールが必要です。Ghostty の他の部分はすでに XDG desktop portal に依存しているため、おそらくすでに存在しています。なければ、通常はよくサポートされた 1 つのパッケージをインストールする(+再起動)だけで済みます。

グローバルキーバインドはどのキーバインドアクションでも使えますが、toggle_quick_terminal のような機能と組み合わせることが特に効果的です。後者は今やGTK でもサポートされました。

GTK:ローカリゼーション(進行中)

PR:#6004 & 各ロケールに向けた挙げきれないほどの貢献

GTK アプリのローカリゼーション向けの予備サポートが追加されました。現時点では GTK の GUI 要素だけが翻訳されています。macOS および Ghostty のその他の部分のローカリゼーショサポートは、将来のリリースで来ます。

Ghostty 1.2 は、次のロケールでの GUI 要素に完全なローカリゼーションを備えています:

  • bg_BG

  • ca_ES

  • de_DE

  • es_AR

  • es_BO

  • fr_FR

  • ga_IE

  • he_IL

  • hu_HU

  • id_ID

  • it_IT

  • ja_JP

  • ko_KR

  • mk_MK

  • nb_NO

  • nl_NL

  • pl_PL

  • pt_BR

  • ru_RU

  • tr_TR

  • uk_UA

  • zh_CN

ローカリゼーションは各ロケールのボランティアが行っています。Ghostty のローカリゼーションに時間を捧げたボランティアの皆さんに、Ghostty プロジェクトは深く感謝します。あなたのロケールに向けて Ghostty をローカライズしたい場合は、CONTRIBUTING.md ドキュメントの指示を参照してください。

GTK:FreeBSD サポート

Ghostty の GTK アプリは FreeBSD をサポートするようになりました。この仕事は、依存ライブラリすべてへの FreeBSD 対応パッチの提出、ビルドスクリプトの更新、Ghostty が FreeBSD 上で機能し続けることを確かめる自動テストへの協力まで、ほぼ完全に 1 人のコミュニティメンバーが推進しました。

FreeBSD 上で正しくビルド・実行できることに加えて、コミュニティはインストールを簡単にする FreeBSD port を開発しています。その port が利用可能になったらインストールドキュメントを更新します。

GTK:フルでリークのない全面書き直し

PR:#7961 、gtk-ng PRs

GTK アプリ全体を、完全な GObject 型システム を使って一から書き直しました。この過程では、メモリリーク、未定義メモリアクセス、use-after-free などをチェックするため、すべての機能を Valgrind でテストしました。

動機の詳細は元の PR を参照してください。結果として得られたのは、コントリビューターにとっていっそう維持しやすい、より安定した現代的な GTK アプリです。

1.1.3 の GTK アプリには、非常に長い使用時間の後に Ghostty の再起動を必要とする、既知のメモリリークがありました。多くの開発者は端末をめったに閉じません。また、どのアプリケーションも再起動を要求すべきではありません。現在の GTK アプリは完全に安定しており、tip ユーザーからは数週間動かし続けても問題がないとの報告をいただいています。

これは GTK ユーザーだけの利益ではありません:この仕事の結果、すべてのコミットで Ghostty のユニットテストを Valgrind の下で実行するようになりました(#8309 )。ユニットテストの 90% 以上がクロスプラットフォームコードをカバーしているため、これは Ghostty 全体の安定性と信頼性の向上に役立ちます。

Note

Valgrind が検出できるのは、実際に実行されたコードパスのメモリ問題だけです。GUI で可能なインタラクションは一通り実行しましたが、Ghostty のすべてのコードパスを実行したわけではありません。

システム要件

macOS: Ghostty 1.2 が要求する macOS の最低バージョンは変更ありません(macOS 13 Ventura)。Ghostty は macOS 26(Tahoe)とも互換になりました。

GTK: Ghostty 1.2 は GTK 4.14 と libadwaita 1.5 を必要とします。これは私たちの GTK/Adwaita バージョンポリシー と一致します。GTK や Adwaita の古いバージョンのシステムは、Ghostty の旧バージョンか、コミュニティが維持する snap ないし flatpak パッケージを使ってこの要件を回避できます。

破壊的変更

  • GTK:libadwaita が必須になりました。1.1.0 のリリースノート以来この変更の到来を警告してきており、その動機は前出のリンクでよく説明されています。反応する前に必ず読んでください!コミュニティからフィードバックを募り、この決定について掘り下げて議論しました。SSD サポート、第一級の CSS スタイリングなど、これらの懸念に応える機能を出荷しました。
  • GTK:最低要求 OpenGL バージョンは 4.3 になりました。これはパフォーマンスの改善、いくつかのレンダリングバグのより容易な修正、OpenGL バックエンドのメンテナンス性の向上のために必要でした。OpenGL 4.3 は 2012 年にリリースされたものであり、それでも 10 年以上前のバージョンです。#7620
  • 同梱テーマは release-20250915-154825-b4500fc に更新されました。テーマは上流で管理されているため、テーマ名の変更や色の変更が含まれることがあります。1.1.3 で機能していたテーマが 1.2 への更新で機能しなくなった場合、リンク先のリリースでテーマ名を確認してください。
  • dlig フォント機能は既定でオフになりました。その結果、以前は機能していたリガチャが機能しなくなる可能性があります。これは以前から正式に「discretionary ligature」機能として定義されており、opt-in であるべきものです。より一般的な calt(contextual ligature)機能は引き続き既定でオンです。この機能は font-features 設定で再び有効化できます。#8164

非推奨

以下の一覧の非推奨項目は、互換レイヤーを通じて今日も機能しますが、無視され続けると将来のリリースで壊れる可能性があります:

  • adw-toolbar-style は gtk-toolbar-style に改名されました。
  • gtk-tabs-location=hidden は window-show-tab-bar=never に置き換えられました。
  • selection-invert-fg-bg は selection-foreground=cell-background と selection-background=cell-foreground に置き換えられます。#5219
  • cursor-invert-fg-bg は cursor-color=cell-foreground と cursor-text=cell-background に置き換えられます。#5219

これらの非推奨を削除する固定の時期はありませんが、将来のあらゆる混乱を避けるため、できるだけ早く新しい設定へ移行することをお勧めします。

Note

上記の非推奨項目は、目に見える警告なく引き続き機能します。将来的なリリースで、設定に関する警告を表示する拡張を計画しています。

完全なチェンジログ

GitHub でクローズされた issue の一覧。

各セクションでは、バグ修正の前に改善を並べるよう心がけています。

  • -e 経由のコマンドは /bin/sh でラップされず、直接実行されるようになりました。#7032

  • macOS と GTK に新しいコマンドパレット機能を追加。バインドされていない keybind アクションもほとんど実行できます。#7153 #7156

  • 方向性を持つ goto_split は、macOS と GTK の両方で、現在のスプリットの左上隅からその方向に最も近いスプリットへナビゲートします。私たちはこれを「空間ナビゲーション」と呼んでおり、より直感的なスプリットナビゲーションになります。#574

  • 複数のスプリットが同じ方向に向いているとき、equalize_splits キーバインドアクションはより予測可能に満足のいく結果を出すようになりました。#7710

  • 新しいオプトインのシェル統合機能 ssh-terminfo と ssh-env が、SSH での Ghostty 使用の体験を改善します。#7608

  • カーソル情報は custom shaders からも利用できるようになり、カーソル移動のクールなアニメーションを描くといったことが可能になります。#7648

  • 新しい CLI コマンド +edit-config は、設定された $EDITOR 端末で Ghostty の設定を開きます。#7668

  • 新しい keybind prompt_surface_title で、端末のタイトルを手動で変更できます。#2509 #5769

  • 新しい keybind scroll_to_selection は、存在する場合にビューポートを現在の選択の左上へスクロールします。#7265

  • 新しい keybind set_font_size でフォントサイズを設定します。#7795

  • 新しい keybind copy_title_to_clipboard は、現在の端末タイトルをクリップボードへコピーします。#7829

  • 新しい keybind close_tabs:other は、現在のタブ以外のすべてのタブを閉じます。#8363

  • keybinds write_screen_file、write_scrollback_file、そして write_selection_file は、ファイルパスをクリップボードへコピーできる copy を値としてサポートします。#7721

  • config app-notifications に新しい値 config-reload(既定オン)。設定が再読み込みされたときに通知を表示するかを制御します。#8366

  • config:command の値に shell: または direct: の接頭辞を付けると、shell(既定)または直接 exec 経由でコマンドを実行します。#7032

  • config:right-click-action = copy による右クリックコピー。#4404

  • config:background-image で端末に背景画像を設定できます。これは現状では各端末に適用され、ウィンドウには適用されません。#3645

  • config:env で端末環境に設定する環境変数を指定できます。#5257

  • config:quick-terminal-size で quick terminal のサイズをカスタマイズできます。#2384

  • config:font-shaping-break は、リガチャをいつ断ち切る(分割する)かを設定します。#4515

  • config:新しい値 cell-foreground と cell-background は、selection-foreground、selection-background、cursor-color と組み合わせて、色の値を動的セル色に設定するのに使えます。#5219

  • config:新しい bold-color オプションで、太字にカスタム色を指定して読みやすくできます。#7168

  • config:新しい selection-clear-on-typing オプションで、入力時に選択を消去します。#7394

  • config:新しい link-previews オプションは、ウィンドウ下部の URL プレビューがいつ現れるかを決めます。#7831

  • config:新しい background-opacity-cells は、background-opacity 設定を明示的なセル背景(たとえば実行中のプログラムによるもの)にも適用します。#7913

  • config:新しい faint-opacity は、端末プログラムに faint とマークされたセルで使うセルの透明度を設定します。#8472

  • config:新しい right-click-action オプションで、右マウスボタンのクリック時の挙動を設定できます。#8254

  • cli:+list-themes で enter を押すと、テーマの設定方法に関するヘルプテキストが表示されます。#4731

  • cli:+list-themes に、ライトテーマとダークテーマを絞り込むフラグが付きました。#7235

  • cli:+list-themes にテーマの絞り込みを追加。#8082

  • cli:+list-colors は、16 進コードに加えて実際の色も表示します。#8393

  • custom shaders を実行時に再読み込みできるようになりました。#7620

  • custom shaders が背景色と正しくブレンドします。#7620

  • クリックしながらマウスをウィンドウの上または下で押さえ続けると、マウスをかき混ぜることなくビューポートをスクロールします。#4422

  • shell-integration:有効化する機能の指定を、複数の env vars ではなく単一の GHOSTTY_SHELL_INTEGRATION_FEATURES env var で行うようになりました。#6871

  • shell-integration/elvish:OSC 7 の報告に kitty-shell-cwd:// スキームを使い、エンコードが不要になりました。#7033

  • goto_split と next_tab などのスプリットとタブのナビゲーションキーバインドは performable に対応します。#7680

  • font:キャッシュ用のグリフハッシュの性能を改善し、合成ストレステストで約 5% 速くなりました。#7677

  • CLI に特定の font-family フラグを渡された場合に起こりうるクラッシュを修正。#7481

  • 設定 adjust-cursor-thickness が cursor-style=underline と連携するようになりました。#7732

  • 確定前文字列(IME 使用時など)のある状態で backspace を押す問題を解消。#5728

  • config:keybind=(空値)は既定のキーバインドを復元し、他の <key>= 空値と同様に振る舞います。#5936

  • config:palette 設定が、パレット番号と色の間の空白をサポートするようになりました。#5921

  • config:色のリストを受け付けるすべての設定(macos-icon-ghost-color など)は、コンマの後の空白に対応します。#5918

  • copy_url_to_clipboard キーバインドアクションが、OSC 8 ハイパーリンクと正しく連携します。#7499

  • font:フォールバックフォントのサイズが、視覚的にプライマリフォントサイズにより近くなるよう自動調整されました。#7840

  • font:新しいスプライトをサポート:U+1CC00〜U+1CCFF、U+1CE00〜U+1CEFF、U+2500〜U+25FF、U+1CE00〜U+1CEFF、U+1FB00〜U+1FBFF。#7755 #7761

  • font:U+25E4 と U+25E2(幾何学的形状)が、内蔵スプライトフォントでラスタライズされるように。#3344

  • font:幾何学的形状の角部品が、内蔵スプライトフォントでラスタライズされるように。#7562

  • font:グリフ制約ロジックが劇的に改善され、Nerd Font アイコンなどがより正確に表示されるように。#7809

  • input:対応するキーボードでは、copy と paste の物理キーが、既定でそれぞれ copy_to_clipboard と paste_from_clipboard にバインドされます。#8586

  • input:既定の copy_to_clipboard バインディングは performable としてマークされ、コピーすべきテキストがない場合、キーは pty へエンコードされます。これにより TUI がこれを捕捉できます。#8504

  • input:マウススクロールホイールからマウスイベントへのマッピングが、他のターミナルエミュレーターとよりよく合うよう修正されました。#6052

  • input:ctrl+<ASCII> が、より広範なキーボードレイアウトで機能するように。#7309

  • input:クリックしながらマウスをドラッグすると、マウスリンクのアクションがキャンセルされるように。#7080

  • input:goto_tab バインディングが、より多くのキーボードレイアウトで機能するよう、物理キーと論理数字キーの両方に既定でバインドされるように。#8486

  • renderer:キャッシュされたグリフ検索の性能を改善するマイクロ最適化。#8536

  • 端末コマンドの開始時に exec システムコールが失敗する状況を優雅にハンドルするように。#7793

  • 「プロセスを起動できませんでした」のエラーメッセージが、修飾キーで解除できなくなりました。#7794

  • 矩形選択の左上または右下がビューポート外にある場合のレンダリング問題を修正。#7692

  • octant レンダリングのいくつかの丸めエラーを修正し、特定のシナリオで octant が並ばない問題を解消。#7479

  • いくつかのマウス選択ロジックを修正し、Ghostty が余分な行や文字を誤って選択することがなくなりました。#7444

  • ファイルパスの正規表現を修正し、少なくとも 1 つのスラッシュを要求するように。#7355

  • 特定の場所にスペーサーヘッドを持つ書記素のリフローで起こりうるクラッシュを修正。#7537

  • Kitty 画像プロトコルで描画される画像の日 ガンマブレンディングが正しくなるように。#7368

  • ビューポートポインターが範囲外になった際のズームアウトでレンダラーがクラッシュしうるシナリオを修正。#7899

  • メモリページのハイパーリンク滑り込み領域が尽きた場合に起こりうるクラッシュを修正。#8009

  • 初フレーム描画時の未定義メモリアクセスを修正。#7982

  • リンクを探すために修飾キーを押している間に発生していたメモリリークを修正。#7998

  • ビットマップアロケーターがちょうど 64 ブロックを確保した場合のクラッシュを修正。#8276

  • フォントアトラスのエラーパスでの use-after-free の可能性を修正。実野外でこれが発動した既知の事例はありません。#8249

  • バッキングバッファの成長が正しく実装されていなかった、いくつかの内部 OOM 状況での起こりうるクラッシュを修正。#8277

  • OSC パーサー内の未定義メモリアクセスがクラッシュにつながりうる問題を修正。#8307

  • Kitty 画像の z-index の問題を修正。#7671

  • shell-integration/bash:有効な GHOSTTY_RESOURCES_DIR env var への依存をやめました。#7611

  • shell-integration/bash:ゴミ文字が印刷されうるシナリオを修正。#7802

  • shell-integration/bash:既存の env をより確実に保持するように。#7908

  • OSC 7 パス報告でシンボリックリンクを解決しないようにしました。#7773

  • 附帯テーマは release-20250915-154825-b4500fc に更新。これは既存テーマの改名を引き起こすことがあります。テーマが機能しなくなった場合、そのテーマが改名されていないか確認してください。改名は上流で行われるため、当方は回避しようがありません

  • inspector:小数ピクセルサイズの表示を修正。#8179

  • contrib/vim:scratch バッファー内の設定に対するシンタックスハイライトを修正。#7119

ターミナル能力

このセクションは、terminal emulation と、terminal 内で実行されるアプリケーションに公開されるその他の capability に対する変更を対象にします。

Ghostty は依然として terminal emulator の互換性に焦点を当てているため、Ghostty 1.2 の変更は、他の terminal emulator の機能に対する互換性の追加・改善だけです。将来の Ghostty バージョンでは、アプリ開発者が活用できる新しい Ghostty 固有の機能を追加する予定です。

  • vt:mode 47 の対応を追加。#7443

  • vt:mode 1048 の対応を追加。#7473

  • vt:さらに多くの ConEmu OSC 9 シーケンスをパース。Ghostty が反応する ConEmu OSC 9 シーケンスは 9;4 プログレスバーのシーケンスのみです。残りはパースされ無視されます。#8410

  • vt:色操作の機能サポートと互換性を大幅に改善(主に OSC 4、5、10-19、104、105、110-119 について)。新しいシーケンスサポートに加え、これまでサポートしていた色操作の互換性も修正しました。#8590

  • vt:primary DA レポートに OSC 52 の対応を示すように。#7725

  • vt:OSC 4/104 が複数の色指定を許すように。#7402

  • vt:SGR シーケンスに最大 24 パラメータを許し、いくつかの Kakoune テーマを修正。#8417

  • vt:OSC 52 は空文字列を送って現在のクリップボードを空にできます。#8018

  • vt:XTGETTCAP が小文字の 16 進文字に対して正しく機能するように。#7229

  • vt:Kitty 画像プロトコルが範囲指定の削除操作をサポートするように。#5957

  • vt:Kitty 画像プロトコルを使ういくつかの画像のアスペクト比の問題を修正。#6673

  • vt:Kitty 画像プロトコルが制御データを持たないコマンドを受け付けるように。#7023

  • vt:Kitty 画像をグリッドサイズへ強制しないように。#7367

  • vt:mode 47、1047、1049 向けの alt screen のエッジケースの多数を修正し、xterm の挙動により近づけました。これらのバグを突く実在のプログラムを私は知りませんが、良い作法です。#7471

  • vt:normal screen と alt screen の切替時にハイパーリンク状態をクリア。#7471

  • vt:ctrl+esc が適切な Kitty keyboard encoding を生むように。#7000

  • vt:index(\n)操作が、特定のエッジケースで正しい行をクリアするように。特定のシナリオでの vim ステータス行の乱れを修正します。#7093

  • vt:フォーカスのないウィンドウをクリックしてもマウスイベントがエンコードされなくなりました。#2595

  • vt:特定の不完全なエスケープシーケンスの未定義メモリアクセスを修正。#8007

  • vt:OSC 9 通知が単一文字のメッセージを含められるように。#8396

  • vt:VS15 が既定のワイド文字をナローにするとき、カーソルが 1 セル後ろに戻るように。#8538

macOS

  • macOS:macOS 26(Tahoe)のサポート

  • macOS:いかなる種類の端末(ウィンドウ、タブ、スプリット)のクローズも元に戻す・やり直しできます。最近閉じた端末は、設定可能な時間(既定 10 秒)だけメモリに潜るため、誤って閉じても復旧できます。#7535

  • macOS:読み取り専用の accessibility API 統合で、スクリーンリーダーが Ghostty の構造と内容を読めるようになりました。AI ソフトウェアが Ghostty の内容を読むのにも役立ちます。accessibility 権限を必要とするため、オプトインです。#7601

  • macOS:App Intents との統合により、Apple Shortcuts で Ghostty の自動化が可能に。#7634

  • macOS:ベル実装。デフォルトでは、ベルは Dock アイコンを bounce させるとともに、タイトルにベル絵文字(🔔)を表示します。terminal を focus した時、または 任意の input で、clear されます。ベルは audio を 者 しません。bell-features ですべて disable できます。#7099

  • macOS:Finder から実行されたり Dock にドロップされたスクリプトは、login shell 経由で stdin に <filepath>; exit を送って実行されるように。内蔵 Terminal や他の端末があなたの login scripts をロードするのと同じ方法です。#7647

  • macOS:カスタムアイコンが Ghostty 非実行中にも保存されるように。#8230

  • macOS:OSC 9;4 プログレスバーシーケンスに対するネイティブ GUI プログレスバーの表示。#8477

  • macOS:すべての Ghostty ウィンドウを前面に持ってくる bring_all_to_front keybind アクションを追加。#4704

  • macOS:ウィンドウサイズを初期構成サイズへ戻す reset_window_size keybind アクションを追加。#6038

  • macOS:check_for_update keybind アクションを追加。#7235

  • macOS:「既定サイズへ戻る」メニュー項目を追加。#1328

  • macOS:macos-hidden 設定は Ghostty を Dock とタブメニューから隠します。#4538

  • macOS:リンクのクリックで、open コマンドの代わりに NSWorkspace API を使うように。これにより、他のプログラムは望むなら挙動を変えるためにソースアプリ(Ghostty)を利用できます。#5256

  • macOS:交通信号ボタンを隠す新しい設定 macos-window-buttons。#7504

  • macOS:既存の macos-non-native-fullscreen 設定に新しいオプション padded-notch。非ネイティブ全画面ウィンドウをノッチの下に置きつつメニューバーを隠します。#5750

  • macOS:新しい keybind アクションとメニュー項目 toggle_window_float_on_top により、特定の端末ウィンドウを非フォーカスでも他のすべてのウィンドウの上方へ浮かせられます。#7237

  • macOS:quick terminal 内でもスプリットの均等化が機能するように。#7480

  • macOS:quick-terminal-position=center が中心位置を保持したままリサイズできるように。#8398

  • macOS:Finder から実行されたり Dock にドロップされたスクリプトの実行には、常に手動確認が求められるように。#8442

  • macOS:スプリットの zoom 解除ボタンが、タイトルバータブと単一タブにおいても見えるように。#7502

  • macOS:window-save-state が端末タイトルを保存するように。#7938

  • macOS:Cmd+h(macOS の hide window)が、最後の可視ウィンドウを隠そうとする場合に h を送らなくなりました。#5929

  • macOS:maximize 設定が macOS 上で機能するように。#5928

  • macOS:キー入力の処理速度を約 10 倍に改善。#7121

  • macOS:赤い信号をクリックしたときに、タブのクローズとウィンドウのクローズを区別するように。#7618

  • macOS:macos-titlebar-style=tabs 設定でタイトルテキストが垂直中心に寄せられます。#5777

  • macOS:CLI から起動された Ghostty が前面に来るように。#8546

  • macOS:非ネイティブ全画面の切替時に、フォーカスが最初のスプリットへ行かなくなるように。#6999

  • macOS:cmd+. がバインドできるように。#6909

  • macOS:端末セルに拘束されたフォントグリフがよりシャープに見えるように。#6914

  • macOS:close_window キーバインドアクションが機能するようになりました。#7003

  • macOS:quick terminal が全画面の space 上下でより確実に現れ・消えるように。#7070

  • macOS:ウィンドウの左端外での選択時に、選択範囲が 1 行上へスクロールしなくなるように。#7071

  • macOS:macos-titlebar-style=hidden で作られた新しいウィンドウが他のウィンドウと同様に位置をカスケードするように。#7567

  • macOS:テキストなしで確定前文字列をクリアするキー入力は pty へエンコードしないように。#7226

  • macOS:キーボードショートカットが macOS の「Dvorak - QWERTY ⌘」キーボードレイアウトで正しく機能するように。#7315

  • macOS:小数のマウススクロールイベントを切り上げにし、スクロールホイール付きマウスがより使えるように。#7185

  • macOS:すべてのスプリット方向がメニューバーとコンテキストメニューで利用できるように。#5807

  • macOS:OSC 7 による pwd の設定が、macOS の「Private Wi-Fi Address」機能で機能するように。#7029

  • macOS:リサイズオーバーレイが言語中立の w x h 書式を使い、単位を省略するように。#7142

  • macOS:「サービス -> New Ghostty Window/Tab Here」がファイルにも機能するように。#7286

  • macOS:非ネイティブ全画面使用時にフォーカスを確実に保持するように。#7279

  • macOS:確定前文字列がリアルタイムにストリーミングされるように。#8490

  • macOS:確定前アイコンが言語セレクターを正しく表示するように。#8490

  • macOS:確定前アイコンが文字のストリームに正しく追随するように。#8490

  • macOS:最後に閉じた surface のメモリが保持され続ける(一度に 1 つだけ)issue を修正。#7507

  • macOS:CoreText フォント feature を free できなかったことによるメモリリークを修正。#7770

  • macOS:fallback discovery に向けたフォント descriptor のメモリリークを修正。#7770

  • macOS:ObjC blocks のメモリリークを修正。#7770

  • macOS:非ネイティブ全画面と fullscreen = true が両方設定された場合に発生しうるクラッシュを修正。#7277

  • macOS:title が設定されている場合、ロード時にウィンドウへタイトルを設定することで、window 管理者がタイトルをより早く見られるように。#6056

  • macOS:cmd キー入力は legacy key encoding 用にエンコードされなくなりました。#6057

  • macOS:quick terminal 内での new_tab の発動は、新しいウィンドウを作る代わりに役に立つエラーを表示するようになった。クイック terminal の タブ への対応は将来の release で。#5939

  • macOS:非ネイティブ full screen ウィンドウを閉じる時に menu bar が正しく復元されるように。#7525

  • macOS:window focus の時点ですべての通知を dismiss。#7531

  • macOS:ウィンドウ閉鎖のときにすべての通知を dismiss。#7531

  • macOS:すでにフォーカスされたウィンドウの通知は 数秒後に dismiss。#7531

  • font/coretext:フォント検索の並び替えの方が一貫した改善。#7483

  • man pages に macOS 固有の設定パスに言及するように。#5938

GTK(Linux、FreeBSD)

  • GTK:FreeBSD 対応。この仕事はすべて 1 人のコミュニティメンバーが推進したものであり、その貢献に深く感謝します。#7606

  • GTK:より幅広いデスクトップ環境にスタイル上マッチする新しいアイコン。Linux/BSD エコシステムの多様性のため完璧になることはないでしょうが、新しいアイコンは大きい改良で、アプリが mac 中心的に感じなくなる効果があります。#8038

  • GTK:SIGUSR2 を Ghostty に送ることで設定を再読み込みできるように。#7759

  • GTK:新しい gtk-titlebar-style=tabs がタブをウィンドウのタイトルバーに配置します。#8166

  • GTK:クイック端末が Wayland 上の Linux と wlr-layer-shell プロトコルで機能するように。#4624

  • GTK:global: キーバインドが、XDG desktop portal が利用可能な任意の時間に(ほぼすべてのデスクトップ環境)機能するように。#6051

  • GTK:OSC 9;4 プログレスバーシーケンスにネイティブ GUI プログレスバーを表示。たとえば systemd が発するもの。#7975

  • GTK:オーディオベル対応(既定オフ)は bell-features=audio を有効化し、bell-audio-path と bell-audio-volume を設定することで使えます。#5326

  • GTK:DBus と systemd activation サービスをより速い起動のためにインストール。#7433

  • GTK:OpenGL レンダラーがリニアブレンド非対応を改良し、色のブレンドがより正確に。#7620

  • GTK:X-KDE-Shortcut キーを登録したことで、KDE で Ghostty を開く shortcut を登録できるように。#7673

  • GTK:Linux 上の async API で io_uring と epoll を動的に選択できるように。以前は io_uring に固定され、epoll のみの環境では source からビルドするしかありませんでした。#5916

  • GTK:新しい設定 async-backend を epoll に設定すると、Linux では io_uring ではなく epoll を強制します。これが iowait 报告の壊れた kernel にとって有用です。#5916

  • GTK:新しい設定 window-show-tab-bar はタブバーがいつ見えるかをカスタマイズします。#5590

  • GTK:新しい設定 quick-terminal-keyboard-interactivity は、Wayland 上の keyboard interactivity 設定を具体的にカスタマイズします。#7477

  • GTK:新しい keybind アクション show_gtk_inspector は GTK inspector を表示します。terminal keybinds が GTK のデフォルトバインドをしばしば隠してしまうためです。#7468

  • GTK:新規タブボタンに、新しいスプリットを作る dropdown menu が付きました。#7127

  • GTK:クリップボード確認ダイアログに「選択を記憶する」toggle を追加。#6783

  • GTK:新しい native GUI element は、コマンドが異常終了したとき、または wait-after-command が設定されているときに表示されます。#7836

  • GTK:オンスクリーンキーボードに対応。#7987

  • GTK:title が設定されている場合、ウィンドウは surface の初期化後にではなく、すぐにタイトルを持つように初期化されます。これにより window 管理者がこの値を読めるように。#8535

  • GTK:OpenGL renderer の初期化に失敗した場合、empty ウィンドウの代わりに native GUI element を表示。#8390

  • GTK:端末への filepath drop のとき ( と ) を escape するように。#6922

  • GTK:copy-on-select=clipboard は選択中の toast spam しなくなりました。copy は mouse の release のときのみ発生します。#4800

  • GTK:すべてのスプリット方向がメニューバーとコンテキストメニューから利用できるように。#5779

  • GTK:wait-after-command 向けの close 確認を要求しないように。#7500

  • GTK:server-side decorations が使われている場合は、可視 border をもたらす solid-csd CSS class を ウィンドウから取り除く。#8127

  • GTK:最後のタブを閉じた後 時々 ウィンドウが blank になり close しなくなる問題を修正。#5837

  • GTK:resize overlay は言語中立の w x h 書式を使い、単位を省略するように。#6013

  • GTK:close の際 surface の cgroup を正しく lenklär。#6766

  • GTK:OpenGL の resize 時の flicker/stretch を 短縮。#7155

  • GTK:GHOSTTY_RESOURCES_DIR をより多くのインストール環境で 検出するように。#6814

  • GTK:xdg-open 呼び出しが defunct process を 残しうる場合を修正。#7657

  • GTK/X11:> 200% scaling 使用時の blur 領域を修正。#6978

  • font/freetype: true bitmap fonts がサポートされるように。#8512

  • font/freetype: SFNT table を含まないフォント使用時の 可能な crash を修正。#8483

  • font/freetype: SVG glyph の loading 時に error が発生(まだ完全にはサポートしていないため)。#6824

  • font/freetype: rare な capturas において data race が引き起こしうる クラッシュを修正。#7238

  • font/freetype: もっと多くの 非 UTF-8 エンコードの font 名を UTF-8 へ decode。#8204

  • packaging:実験的な snap packaging が CI でテストされるように。published snap image は外部の maintainer が現在管理しています。#3931

パッケージメンテナー向けの変更

  • 私たちは、some preprocessing 済み files を含む source tarballs を、 ニューラル 普通 な process 的な tarball と同じ 様式で 生成します(たとえば parser .y を .c へ変換)。 Ghostty 向けには、Blueprint ui を xml files、transl ations、GTK resource files を preprocessing します。これにより Ghostty を古い プラットフォームから新しい build tools を 必要とせず build できるように。パッカーは source tarball を 使う べきで、Git checkout ではありません。PACKAGING.md ドキュメント はこの情報で 更新されました。 #6800

  • GLFW apprt は削除されました。これ till 何らの supported apprt ではなく、開発 と テストのみに使われていたものです。私たちは GLFW を packaging することへの 反対を PACKAGING.md ドキュメント で表明 してい ました。開発および テストには これをもう 必要と しないため、今回 削除 されました。#7815

  • "tip" リリースは、同じ commit の以前の tip を上書き しなくなりました。これは checksums の安定性を release が 切り出された後 保証します。 tip packages を提供する パッカー 向けに、これは security と tooling 的 compatib 周辺 および安定性の die improving 效果を 持ちます。tip リリースは墓地的な署名が 付いています。#8549

Flatpak/Snap 更新

Ghostty 1.2 は、Flatpak と snap 両方向がない build 向け 設定を備えます。CI ではすべての commit に対して テストし、これらの distribution を通して Ghostty が機能し続けるよう 努力しています。しかし、私たちはまだ Flatpak/Snap パッケージを公式には提供・維持 していません。

これは大きな進歩です:Ghostty 1.1.x はパッチなしでは Flatpak や Snap パッケージとして全く機能せず、公式プロジェクトもこれらのパッケージの維持について何の保証もしていませんでした。現在では、少なくともこれらのプラットフォームでビルドとテストをしています。ただし、公式の配布にはまだ届いていません。

公式配布を妨げる主な要因は、メンテナーの関心とリリースオートメーションです。Ghostty の現在のメンテナーには、Snap や Flatpak ビルドの主力を担う人が誰もいませんし、これらのパッケージを長期的に維持する能力に自信がありません。Ghostty の Flatpak や Snap パッケージの維持に協力してくださるなら、Discord に参加して #packaging までお知らせください。

ロードマップ

Ghostty 1.3 は、他の人気ターミナルエミュレーターとの対等性を達成するために、最後に残った主要な未実装機能を出荷することに引き続き焦点を当てます。これにより Ghostty を「既存の最良のターミナルエミュレーター」にします。具体的には、少なくとも 1.3 向けにスクロールバック検索とスクロールバーを出荷する計画です。2

Ghostty 1.3 の主な焦点はデスクトップアプリケーション機能(スクロールバック検索とスクロールバーはその一部)です。Ghostty のコア端末エミュレーション機能はすでに非常に豊富で安定していることが証明されています。それに加え、他の人が最近エコシステムへ投入した新しい実験的なプロトコルを採用するなど、VT 機能のサポート継続を計画しています。

よくあるリクエストへの回答として、Windows と スタンドアロンのライブラリとしての libghostty は Ghostty 1.3 向けには計画されていません。これらは長期ロードマップの一部ですが、既存のプラットフォームとデスクトップアプリケーションにまず焦点を当てたいと考えています。

3 月/9 月リリースサイクルへの移行

Ghostty は、major/minor リリースに対する 6 か月のリリースサイクルへ移行します。次の minor リリース(1.3.0)は 2026 年 3 月予定です。3 月/9 月のリリースサイクルは、多くの主要 Linux ディストリビューションと macOS とよく調和します。パッチリリース(たとえば 1.2.1)は、必要に応じて不定期に行われます。

これは現代的なアプリケーションにとっては比較的長いリリースサイクルですが、開発チームが大型で影響力のある機能に焦点を当て、tip リリースで安定化するのに十分な時間を確保できます。パッケージャーにとっては、頻繁なリリースのパッケージングに伴う手間を避けられます。また、主要 OS リリースとの調和により、新しい OS バージョン上でうまく機能する主要リリースを出荷することを確実にできます。

より頻繁な更新に関心のあるユーザーには、macOS では tip リリースチャンネル の使用、Linux では頻繁なソースからのビルド をお勧めします。当方には数千人の nightly ユーザーがいます(テストに感謝します!)。メンテナーチーム全員が tip リリースを安定に保つよう努力しています。1.1 から 1.2 の開発サイクル全体を通じて、tip リリースが日常利用として壊れたことは記憶にありません。

Footnotes

  1. 完全な調査はしていませんが、OSC 9 通知、OSC 777 通知、そして OSC 9;4 プログレスバーの両方をサポートするターミナルエミュレーターは他に見当たりませんでした。 ↩

  2. ここでの「対等性」という言葉は、他のターミナルエミュレーターで最も人気があり頻繁に使われる機能という、緩い意味で使われています。実装しきれない機能の長い末尾(long tail)もあるでしょう(私たちの機能についても同様です)。 ↩