Ghostty 1.1.1

Ghostty 1.1.1 的發行說明,發佈於 2025 年 2 月 13 日。

Ghostty 1.1.1 由 13 位貢獻者 在 125 個提交 中完成,歷時兩週。本次發行的重點是修復 1.1.0 發行中引入的回退或 bug。我們也在既有特性中順帶加入了一些不錯的改進。

Important

在 macOS 上的 Ghostty 1.1.1 中發現一個重大回退:使用 Kitty Keyboard 協議的程式(如 Neovim 和 Fish 4.0)中 control 修飾鍵無法正常運作。此問題已在 1.1.2 中修復。

亮點

Linux X11 上的伺服器端裝飾(SSD)

PR:#5533

Ghostty 1.1.0 引入了對 Linux Wayland 合成器上伺服器端裝飾(SSD)的支援。這使 Ghostty 在更多種桌面環境上的觀感與體驗更接近原生應用程式。不過,它在 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 上使用獨立顯示卡時會觸發未定義行為。實際上這只影響 Intel Mac,因為所有 Apple Silicon Mac 都有整合繪圖晶片,且 Ghostty 為省電總是偏好整合繪圖晶片(如果可用)。

該未定義行為有時正常,有時導致渲染偽影或其他奇怪的視覺表現。我們現在正確偵測獨立顯示卡,並使用正確的 API 與行為來避免未定義行為。

完整列表

GitHub 上已關閉議題的完整列表。

在各節中,我們盡量把改進排在 bug 修復之前。

  • goto_split 與 goto_tab 現在可與 performable: keybind 前綴正常配合。#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:修復控制字元在某些鍵盤布局上不運作的問題。#5448
  • macOS:修復調用 move_tab keybind 時的圖形閃爍。#5729
  • macOS:toggle_visibility 現在從全域 keybind 調用時恢復焦點到正確的分頁。#5692
  • macOS:修復某些命令字元(如 cmd+backtick)會把未修飾的字元洩漏進終端的問題。#5558
  • macOS:視窗處於原生全螢幕時 toggle_visibility 不再有任何效果。此前它會導致視窗失去焦點。#5472
  • macOS:修復獨立顯示卡的未定義行為。#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 bug。#5593
  • GTK:window-decoration=none 在 GNOME 上正常運作。#5463
  • GTK:未使用 CSD 時移除框線等 CSD 樣式。#5581
  • GTK:Nautilus 整合現在使用命名規範的檔案。#5469
  • GTK:clone 後關閉 cgroup 檔案描述符,以避免小的 fd 洩漏。#5515

面向套件維護者的變更

  • 引入了一個新的 Zig 相依套件 zig-gobject。它採用 0BSD 授權。引入該相依套件不會改變現有的 Ghostty 打包流程。

路線圖

本次發行時我們沒有計劃後續修補發行。我們相信剩餘的 bug 很小,可以在未來更大的 1.2.0 發行中解決。我們會繼續監控 issue tracker 和 pull requests,以發現可能出現的重大問題。

重點將轉向 1.2.0 發行。這將是一次更大的發行,包含更顯著的變更與特性。其時間表尚未確定,但可能還要數月。

1.2.0 為 Linux 規劃的一個重大破壞性變更是要求 libadwaita。我們在 1.1.0 發行中宣布了這一意向,並徵求回饋。在提供回饋前,請仔細閱讀關於該變更的細節。