功能

Ghostty 支援的功能與相關文件。

Ghostty 是一款功能性極豐富的終端機。

終端機功能可以分為兩類:面向最終使用者的功能和面向終端機應用程式開發者的功能。

面向最終使用者的功能包括多視窗、分頁、分割、連字、自動更新等等。這些功能讓終端機更加好用,而不需要對正在執行的終端機應用程式(例如你的 shell、文字編輯器等)做任何改動。

面向終端機應用程式開發者的功能包括 Kitty 圖形協定、Kitty 鍵盤協定、同步渲染、明暗模式通知等等。這些功能讓終端機應用程式能夠做到在其他終端機模擬器中做不到的事情。雖然這些功能不會被最終使用者直接使用,但由於他們每天使用的終端機應用程式可以做更多事,最終使用者也能從中受益。

功能亮點

以下是 Ghostty 支援的一些比較大或比較有趣的功能:

  • 跨平台:Ghostty 能在 macOS 和 Linux 上執行。它使用各平台的原生 UI 元件,提供地道的體驗。Windows 支援將會在未來提供。

  • 視窗、分頁和分割:Ghostty 支援多個視窗,每個視窗都有自己的分頁和分割。這些全部由原生 UI 元件渲染。

  • GPU 加速渲染:Ghostty 在 macOS 上使用 Metal、在 Linux 上使用 OpenGL 來渲染終端機螢幕。

  • 主題:Ghostty 自帶數百個主題,可以只用一行配置選擇。主題還能根據系統的明暗模式自動切換。你也可以自行創建主題。

  • 連字:你可以使用帶連字的字體,Ghostty 會正確渲染它們。你也可以指定啟用或關閉特定的字體特性。

  • 字素叢集:由多個碼點組成的 emoji(如國旗、膚色等)會作為單個字元被正確渲染。阿拉伯文或希伯來文等從右到左文字中的字素叢集也能被正確渲染,但目前只支持從左到右的文字。

  • Kitty 圖形協定:Ghostty 支援 Kitty Graphics Protocol,讓終端機應用程式可以直接在終端機中渲染圖像。

平台原生功能

Ghostty 的主要設計目標之一是在每個平台上像專門打造的原生應用程式一樣,具備原生 的外觀、感覺與行為。以下是 Ghostty 的部分平台原生功能。

macOS

  • 快速終端:輕量型終端機,從選單列下方動態降下,無須中斷工作即可立即使用。
  • AppleScript 自動化:內建 AppleScript 字典,可編寫腳本控制 windows、tabs、terminals、layouts 和 input events。參見 AppleScript docs。
  • 原生分頁、分割等:分頁、分割等 UI 元素使用原生 macOS 元件,而非像其他終端機模擬器那樣自繪文字。
  • 代理圖示:拖曳標題列中的代理圖示可以移動或存取終端機 session 檔案,或直接前往該檔案的路徑。
  • 快速檢視(Quick Look):以三指輕點文字或強按即可進入 macOS Quick Look 查詢定義、網頁搜尋等。
  • 安全鍵盤輸入:可自動偵測密碼提示,或手動啟用安全鍵盤輸入,以防止其他程式竊聽密碼。當安全鍵盤輸入啟用時,終端機的右上角會出現動態鎖圖示。

終端機 (VT) 功能

對終端機應用程式開發者而言,我們相信 Ghostty 目前是最現代、最全面的終端機模擬器之一1。Ghostty 的目標是對舊程式最大相容,同時為新程式提供最現代的功能。

在實踐中,這意味著 Ghostty 支援大量控制序列、終端機功能和終端機協定。為確定這些功能的行為,我們遵循以下原則:

  1. Xterm 相容性:xterm 是終端機模擬的事實標準。如果 xterm 做了某事,我們應做同樣的事2。

  2. 來源協定相容性:如果定義協定的終端機的某個行為,即使未明確規定,我們也應遵循該行為3。

  3. 事實標準相容性:如果某個行為被廣泛認可為標準,我們應遵循該行為。何為「廣泛認可」?通常是主觀的,依據大眾意見與使用方式。

要查看 Ghostty 支援的終端機開發者功能清單,請參考 參考 (但請注意,撰寫本文時該功能仍在完善中)。

Footnotes

  1. If not, we want to know! Please 開啟一個討論。 ↩

  2. We may put some xterm behaviors behind a configuration flag if 該行為有爭議 或未被廣泛接受。 ↩

  3. If a behavior differs between the specification and the terminal that defined the protocol, we open a discussion to determine the correct behavior. ↩