Ghostty 1.0.1

Ghostty 1.0.1 的發行說明,發佈於 2024 年 12 月 31 日。

安全

  • GHSA-5hcq-3j4q-4v6p。修復了一個安全漏洞:Ghostty 此前對視窗標題序列處理不當,可能導致任意程式碼執行(需要使用者互動)。

  • GHSA-hfg5-8q2c-crhc。以 write_*_file keybind 動作建立的檔案此前預設為 0644 模式,允許任何本機使用者讀取該檔案。為防止未授權存取,該檔案現在預設為 0600 模式。

亮點

預設設定檔

PR:#3460

如果找不到非空的設定檔,Ghostty 現在會在啟動時建立一個預設設定檔。基於我們的零設定哲學,預設設定檔只有註解,但這些註解有助於使用者了解檔案位置、語法和文件。

1.0.0 發行時,我們注意到關於設定檔位置、如何編輯以及有哪些選項存在大量困惑。此變更旨在幫助使用者更好地理解如何設定 Ghostty。

點陣字型支援

PR:#4115(CoreText)、#3837(Freetype)

Ghostty 現在在 macOS 與 Linux 上都支援點陣字型。點陣字型仍必須是 truetype 格式,但可以包含每個字形的點陣圖而非輪廓。

macOS:「Settings」改進

PR:#4004

「Settings」選單選項(open_config keybind 動作)在多方面得到改進。

首先,Ghostty 現在會找到第一個非空設定檔來開啟(如果存在)。此前 Ghostty 總是先開啟 XDG 設定路徑,即使 AppSupport 路徑存在。這造成了困惑,因為 AppSupport 路徑會覆蓋 XDG 路徑。現在,Ghostty 在 AppSupport 路徑存在時開啟它,否則開啟 XDG 路徑。

其次,Ghostty 現在在兩個路徑都不存在時正確地把 AppSupport 路徑排在 XDG 路徑之前。這很重要,因為 AppSupport 路徑覆蓋 macOS 上的所有其他路徑。

第三,Ghostty 現在使用 -t 旗標與 open 在文字編輯器中開啟設定檔。

Note

未來的更新將允許使用者用他們的 $EDITOR 開啟設定檔。另一次未來的更新將允許使用者透過 GUI 修改設定檔。

改進

  • 色彩值現在接受簡寫十六進制值(如 #ABC)。#4111
  • confirm-close-surface 現在可以設為 always,以便在關閉視窗時總是顯示確認對話框。#3700
  • macOS:為 Spotlight 搜尋中繼資料新增 "terminal" 關鍵字。#3745
  • GTK:新增 window-titlebar-foreground 與 window-titlebar-background 設定選項。#3806
  • 內建 iTerm2 配色方案更新至 e030599a。

Bug 修復

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

  • 具有映射到按鍵的觸發器的 keybind 現在被當作翻譯鍵(translated key)而非 unicode 觸發器,即 cmd+1 現在可與 cmd+one 一起運作,且 cmd+. 與 cmd+period 相同。#4147
  • write_selection_file 有時會寫入空內容。#4078
  • TUI 應用程式中的超連結更穩定。#3903
  • 重新載入設定不再覆蓋 OSC 10/11/12。#3228
  • scrollback-limit 設定現在接受大於 32 位元的數字。#3906
  • 修復 macOS 與 Linux 上的問題 background-opacity。#3347
  • 修復如果 --font-family="" 特定於命令列設定時可能發生的當機。#4151
  • vt:按照更新後的規範,OSC 10/11/12 不再傳送 mode 2031 DSR 報告。#3994
  • vt:修復 direct-color 解析的邊界情況。#4216
  • bash:shell 整合現在能更好地與 sudo 別名協同。#4080

macOS

  • macOS:修復了視窗未完全銷毀導致的資源洩漏。#4128
  • macOS:修復在某些情況下 toggle_visibility 會叫出不可用的「幽靈視窗」的問題。#3219
  • macOS:Quick Terminal 現在可與 focus-follows-mouse 配合使用。#3337
  • macOS:全螢幕時標題欄現在與 Ghostty 其餘部分一樣不透明。#3834
  • macOS:退出全螢幕現在恢復正確的背景不透明度。#3553
  • macOS:open_config 動作現在優先選擇 AppSupport 路徑而非 XDG,以符合載入優先級。#3953
  • macOS:open_config 動作現在把 -t 旗標用於 open,從而使文字編輯器開啟。#3284
  • macOS:修復有時導致 quick terminal 消耗 100% CPU、造成顯著電量流失的問題。quick terminal 現在閒置時不佔 CPU。#4055
  • macOS:App bundle 現在包含 nvim 目錄。#3966
  • macOS:說明選單項目開啟 Ghostty 文件。#3990
  • macOS:Blur radius 未設定時現在能在執行時正確重新載入。#3954
  • macOS:修復 $HOME 不可寫入時的啟動當機。#3949

Linux(GTK)

  • GTK:透過在推薦 API 不可用時退回已棄用的 API,正確偵測舊版 GTK 上的系統配色方案。#4035
  • GTK:修復同時有 gtk-titlebar=false 與 gtk-tabs-location=hidden 時視窗損壞的問題。#3178
  • GTK:修復錯誤偵測某些特性最低 GTK 版本的版本比較。#3977
  • GTK:為支援的桌面環境安裝 1024x1024 應用程式圖示。#4003
  • GTK:修復 window-decoration=false 與 gtk-titlebar=true 情況下的偽影問題。#3999
  • GTK:window-theme=ghostty 時分頁概覽現在有樣式(需要 libadwaita 1.8)。#3920
  • GTK:gtk-titlebar=false 時分頁概覽也能運作。#3940
  • GTK:為標題變更新增短暫延遲以避免閃爍。#3746
  • GTK:向 desktop 檔案新增 xdg-terminal-exec 欄位。#3853
  • GTK:支援對沒有 X11 支援的 libgtk 建置。#3748
  • GTK:修復關閉表面時可能的段錯誤。#3694

面向套件維護者的變更

  • Ghostty 原始碼 tarball 現在命名為 ghostty-${VERSION}.tar.gz(原先 ghostty-source.tar.gz)並解壓到名為 ghostty-${VERSION}(原先 ghostty-source)的目錄。這更好地符合標準的原始碼 tarball 慣例。PACKAGING.md 檔案已更新以反映此變更。#3490
  • DESTDIR 現在按 PACKAGING.md 中的文件正常運作。#3426

已知問題

Ghostty 1.0.1 仍包含許多已知問題,但被認為對一般專業用途是穩定的。

我們正努力分類並解決這些問題。本次發行解決的是我們認為最關鍵的問題,尤其是考慮到許多人即將從假期歸來重新工作。已知的或新發現的問題的更多資訊請看 GitHub discussions 與 issue tracker。

路線圖

我們計劃在不遠的將來發行 1.0.2。我們不想養成發行過多修補版本(patch version)的習慣,但初次公開發行中發現的一些重要問題,我們認為需要盡快解決。

我們為 1.0.2 考慮的主要問題類別是鍵盤輸入問題(尤其非美式鍵盤布局)、xterm 相容性問題,以及 Linux 與 macOS 上的 GUI 問題。

長期來看,我們計劃遵循一個一般模式:每次重大發行後只發行一兩個修補版本,接著進入為期數月的開發期以邁向下一個重大發行1。這一模式能讓套件維護者跟上我們的發行節奏,把套件送入發行管道而不至於頻繁折騰,同時讓維護者專注於新功能與改進。

Footnotes

  1. Barring any critical issues or security advisories that require immediate attention. ↩