設定

Ghostty 支援數百個設定選項,讓它的外觀與 行為完全符合你的意願。

零設定哲學

Ghostty 被設計成對大多數使用者開箱即用、無需設定。Ghostty 擁有合理的預設值、內嵌預設字型(JetBrains Mono)、內建 nerd fonts 等。作為專案,我們不斷挑戰自己,盡力消除使用 Ghostty 時任何 必要的設定。

為此,如果你發現自己在設定主題這類高度主觀的東西之外的東西,並認為它應該是預設行為,請發起一個討論。

而且,如果你習慣了必須設定的感覺,不妨先試著完全不設定就直接使用 Ghostty。你可能會吃一驚!

設定格式

Ghostty 透過基於文字的設定檔進行設定。

Note

未來我們計畫按與我們的原生 UI 哲學一致的方式再支援原生 GUI 設定。這將在基於文字的設定之外提供。目前,基於文字的設定是設定 Ghostty 的唯一方式。

檔案位置

設定檔名為 config.ghostty(1.2.3 之前為 config),按以下順序從這些位置載入:

XDG 設定路徑(所有平台):

  • $XDG_CONFIG_HOME/ghostty/config.ghostty
  • $XDG_CONFIG_HOME/ghostty/config
  • 若未定義 XDG_CONFIG_HOME,則預設為 $HOME/.config。

macOS 專屬路徑(僅 macOS):

  • $HOME/Library/Application\ Support/com.mitchellh.ghostty/config.ghostty
  • $HOME/Library/Application\ Support/com.mitchellh.ghostty/config
  • macOS 也支援上面提到的 XDG 設定路徑。

如果兩處都存在,就按上述順序載入,後載入檔案中的衝突值覆蓋先前的。設定是可選的;如果找不到設定檔,Ghostty 會使用預設值。注意所有 macOS 專屬檔案都 在 所有 XDG 檔案 之後 載入。

語法

Ghostty 使用一種自訂但非常簡單的 key = value 語法。該語法在下方透過一個範例設定檔中的註解說明。

# The syntax is "key = value". The whitespace around the
# equals doesn't matter.
background = 282c34
foreground = ffffff

# Comments start with a `#` and are only valid on their own line.
# Blank lines are ignored!

keybind = ctrl+z=close_surface
keybind = ctrl+d=new_split:right

# Empty values reset the configuration to the default value
font-family =

關於該語法的一些其他注意事項:

  • 鍵名區分大小寫。background 與 Background 不相同。Ghostty 總是使用小寫鍵名。

  • 值可以加引號,也可以不加。font-family = "JetBrains Mono" 與 font-family = JetBrains Mono 相同。

  • 從命令列啟動 Ghostty 時,每個設定鍵都是有效的 CLI 旗標。例如 background 鍵可以用 ghostty --background=282c34 設定。或 font-family 鍵可以用 ghostty --font-family="JetBrains Mono" 設定。

拆分成多個檔案

你可以在設定檔中使用 config-file 鍵將設定拆分到多個檔案。該鍵指定另一個要載入的設定檔的路徑,並且可以多次指定(會偵測到循環並產生警告)。

注意:任何 config-file 鍵都在目前檔案的 末尾 處理。這意味著 config-file 鍵之後的任何鍵,即使被設定也不會覆蓋所載入檔案中的鍵。

如果值是相對路徑,則相對於包含 config-file 鍵的設定檔。

如果值以 ? 為前綴,則該檔案為可選;如果不存在則忽略。這對平台相關或機器相關的設定檔特別有用。(出於某些奇怪的原因,如果你想載入一個真正以 ? 開頭的檔案,可以用雙引號將整個值括起來作轉義。)

把上述概念結合起來的範例:

config-file = some/relative/sub/config
config-file = ?optional/config
config-file = /absolute/path/config

重新載入設定

可以在執行時按 ctrl+shift+,(Linux)或 cmd+shift+,(macOS)重新載入設定。這些是預設的鍵位綁定,但可以透過 reload_config 動作定義自己的綁定。

Note

有些設定選項無法在執行時重新載入;其他選項可能只對新建立的終端機生效。細節見具體的設定選項。

離線參考文件

除了網站之外,還有多個地方可以找到設定選項的文件。所有位置都相同(都產生自同一原始檔)。

Tip

線上參考文件在此可用。

  1. $prefix/share/ghostty/docs 目錄中有 HTML 與 Markdown 格式的文件。該目錄在建置或安裝 Ghostty 時建立。從原始碼建置時(或指定 --prefix 旗標時),$prefix 是 zig-out。在 macOS 上,$prefix 是 .app 套件的 Contents/Resources 子目錄。

  2. $prefix/share/man 目錄中有 man 頁。建置或安裝 Ghostty 時會建立該目錄。

  3. 在 CLI 中可以執行 ghostty +show-config --default --docs。注意這會把帶文件的完整預設設定輸出到 stdout,因此你可能想把它透過 pager、編輯器等分頁檢視。

  4. 在原始碼中,設定結構見 Config 結構。可用的鍵與原始碼中一致,其可能的值通常在註解中說明。

  5. 嚴格說不算文件,但你可以搜尋許多 Ghostty 使用者的 公開設定檔 作為範例與靈感來源。

Note

你可能會看到形如 font-family = 的、看起來奇怪的空白設定。這是指定預設行為(無值)的有效語法。+show-config 把它輸出出來,是為了表明該鍵取預設值,也是為了給文件註解提供掛靠對象。