Ghostty 1.1.1

2025 年 2 月 13 日にリリースされた Ghostty 1.1.1 のリリースノート。

Ghostty 1.1.1 は、125 コミットにわたる 13 人のコントリビューターによる2 週間の作業です。このリリースの焦点は、1.1.0 リリースで取り込まれたリグレッションやバグの修正です。既存機能への素敵な改善もいくつか忍び込ませています。

Important

Ghostty 1.1.1 の macOS 版で、重大なリグレッションが見つかりました。Kitty Keyboard プロトコルを使う Neovim や Fish 4.0 などのプログラムで、control 修飾キーが正しく動作しなくなるというものです。これは 1.1.2 で修正されました。

ハイライト

Linux X11 でのサーバーサイド装飾(SSD)

PR:#5533

Ghostty 1.1.0 では Linux の Wayland コンポジタでのサーバーサイド装飾(SSD)のサポート を導入しました。これにより、より多くのデスクトップ環境でネイティブアプリのように見え・感じられるようになりました。ただし、X11 では機能しませんでした。

Ghostty 1.1.1 では、window-decoration = server の場合に X11 でも SSD をサポートしました。X11 は SSD を望むかクライアントサイド装飾(CSD)を望むかを伝える標準的な方法を提供しないため、X11 上の SSD は明示的に server を設定した場合のみ機能し、auto の値では機能しません。

インプットメソッドエディタ(IME)改善の継続

PR:#5550 #5448

Ghostty 1.1.0 では IME サポートの改善に大きな力を注ぎましたが、皮肉にもインプットメソッドが有効でないシナリオ(GTK の「simple」インプットメソッド)を壊していました。これは 1.1.1 で修正済みです。1.1.0 の回避策は ibus か fcitx をインストールすることでした。これはもはや必要なく、「simple」インプットメソッドは期待どおりに機能するはずです。

さらに、macOS では IME サポートの改善により、特定のキーボードレイアウトで制御文字の入力ができなくなるリグレッションが起きていました(例:ctrl+c)。これは 1.1.1 で修正されました。

macOS:Intel GPU 向けレンダラー改善

PR:#5625、#5652

実のところ Ghostty は macOS でディスクリート GPU を使うと未定義動作を引き起こしていました。実際には、これは Intel Mac だけに影響しました。Apple Silicon のすべての Mac は内蔵 GPU を持ち、Ghostty は電力効率のため利用可能なら常に内蔵 GPU を選ぶためです。

この未定義動作は、うまくいくこともあれば、レンダリングのアーティファクトや他の奇妙な視覚的挙動を招くこともありました。現在はディスクリート GPU を正しく検出し、正しい API と挙動を使って未定義動作を回避します。

完全な一覧

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

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

  • goto_split と goto_tab が performable: キーバインドプレフィックスと正しく動作するようになりました。#5644
  • +list-actions CLI コマンドに、ドキュメントがないアクションも含まれるようになりました。#4958
  • ターミナルインスペクターのターミナル IO ウィンドウにキーボードナビゲーションを追加。#3909
  • 画面に Kitty graphics がある状態でターミナルをリセットしたときに起こりうるクラッシュを修正。#5693
  • 非常に大きな OSC8 ハイパーリンクで起こりうるクラッシュを修正。このクラッシュが起こりうる他のシナリオもあるでしょうが、クラッシュのクラス全体が解決されました。#5666
  • カーソル色が背景色と一致しているとき、カーソル下の文字が見えない問題を修正。#5570
  • ファイルでないテーマの読み込みで起こりうるクラッシュを修正。#5632
  • iTerm2 配色テーマを db227d159 に更新。#5511

macOS

  • macOS:アーティストが描いた新しい代替アイコンの選択肢をいくつか追加。macos-icon 設定で指定できます。#5696
  • macOS:起動時に、最後にフォーカスされていたウィンドウの位置にウィンドウを表示するようになりました。これは他のネイティブ macOS アプリのふるまいに倣ったものです。#5529
  • macOS:閉じる確認が必要な、アクティブだが隠れている quick terminal がある場合にも、閉じる確認が表示されるようになりました。#5450
  • macOS:control 文字が特定のキーボードレイアウトで機能しない問題を修正。#5448
  • macOS:move_tab キーバインドを呼び出した際のグラフィカルなちらつきを修正。#5729
  • macOS:toggle_visibility がグローバルキーバインドから呼ばれたとき、正しいタブへフォーカスを復元するようになりました。#5692
  • macOS:cmd+backtick などの一部のコマンド文字が、修飾されていない文字をターミナルへ漏らす問題を修正。#5558
  • macOS:ウィンドウがネイティブ全画面の間、toggle_visibility はもはや何の効果も持ちません。以前はウィンドウからフォーカスが失われる原因になっていました。#5472
  • macOS:ディスクリート GPU の未定義動作を修正。#5625
  • macOS:セキュリティ問題を修正するため Sparkle 依存を 2.6.4 に更新。#5598

Linux(GTK)

  • GTK:サーバーサイド装飾(SSD)が X11 で機能するようになりました。#5533
  • GTK:WINDOWID 環境変数に X11 ウィンドウ ID を設定。#5650
  • GTK:特定の状況でコンテキストメニュー位置が不正になる問題を修正。#5710
  • GTK:「simple」インプットメソッドが正しく機能するようになりました。#5550
  • GTK:GTK のバグを回避するため、カラーマネジメントを無効にするオプションを追加。#5593
  • GTK:window-decoration=none が GNOME で正しく機能します。#5463
  • GTK:CSD を使っていないときに、境界線のような CSD スタイルを削除。#5581
  • GTK:Nautilus 統合が適切に名付けられたファイルを使うようになりました。#5469
  • GTK:clone の後に cgroup ファイルディスクリプターを閉じ、小さな fd リークを防止。#5515

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

  • 新しい Zig 依存 zig-gobject を導入しました。ライセンスは 0BSD です。この依存の導入により、Ghostty のパッケージング手順を変える必要はありません。

ロードマップ

このリリース時点で、フォローアップのパッチリリースを計画していません。残っているバグは軽微で、将来のより大きな 1.2.0 リリースの一部として対処できると考えています。重大な問題が提起された場合に備え、issue トラッカーとプルリクエストの監視は続けます。

焦点は 1.2.0 リリースへ移ります。これはより大きなリリースで、より重要な変更と機能を含む予定です。タイムラインは未定ですが、数か月先になる見込みです。

Linux 向け 1.2.0 で計画されている大きな破壊的変更の一つは、libadwaita を必須にすることです。この意図は 1.1.0 リリースの一部として発表し、問題があればフィードバックを求めました。フィードバックを送る前に、この変更の詳細を注意深くお読みください。