配置

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 把它 输出出来,是为了表明该键 取默认值,也是为了给 文档注释提供 挂靠对象。