Ghostty 1.2.1

Ghostty 1.2.1 的发行说明,发布于 2025 年 10 月 6 日。

Ghostty 1.2.1 由 13 位贡献者 在 62 个提交 中完成,历时两周。这是一个补丁发行,主要专注于修复 1.2.0 发行中引入的问题,也包含少量改进。

亮点

字体渲染改进

PR:#8563 #8580 #8738 #8720 #8847

Ghostty 1.2.0 包含了对字体渲染系统的大幅重构。如此大的变更通常会带来问题,一些在测试之外发现的问题也如期出现了。Ghostty 1.2.1 解决了其中许多问题。

变更概述:

  • Nerd Font 图标现在更大,且彼此大小匹配更好,能更好地利用可用单元格空间。宽于单个单元格的图标现在左对齐,而不是跨单元格居中。
  • 使用宽高比形式的主字体时,CJK 字符不再显得过大。IC 宽度(表意字符宽度)现在通过测量 ASCII 字符的整体边界框来设上限。
  • 字形约束现在在加粗与居中操作之前应用,确保图标大小与位置不随字体大小、加粗强度或显示 DPI 变化而一致。
  • 修复了 Nerd Font 补丁提取中的 bug:此前由于码点偏移问题,规则被应用到错误的字形上,并且不相关的补丁集合被错误包含。
  • 改进 FreeType 字形测量,确保字形以与渲染时相同的 hinting 测量。

Shell 集成向 PATH 添加 ghostty

PR:#8976

Shell 集成现在会自动把 GHOSTTY_BIN_DIR 添加到你的 PATH,使 ghostty 二进制无需额外配置即可在许多 shell 中使用。

Ghostty 之前(现在也是)在执行 shell 之前把 ghostty 加入你的 PATH,但许多 shell 配置会重置 PATH。此变更作为 shell 集成脚本的一部分增加了一层,以提高 ghostty 在你的 shell 中可用的几率。

bash、zsh、fish 与 elvish 均支持。

面向精准滚动设备的鼠标滚动倍数

PR:#8927

mouse-scroll-multiplier 配置现在支持 Apple trackpad 等精准滚动设备。你现在可以独立控制离散(鼠标滚轮)与精准(trackpad)滚动的倍数,使不同输入设备下浏览大量回滚缓冲区更平滑、更可预测。

示例:

# Apply the same multiplier to both precision and discrete
mouse-scroll-multiplier = 3

# Apply different multipliers (order doesn't matter)
mouse-scroll-multiplier = precision:0.1,discrete:3

# Apply only to precision, use default for discrete
mouse-scroll-multiplier = precision:2

默认精准倍数为 0.1,离散倍数仍为 1。

完整变更日志

GitHub 上已关闭问题的完整列表。

在各节中,我们尽量把改进排在 bug 修复之前。

  • config:如果未手动设置字体,font-size 现在会在运行时重新加载。#8680
  • cli:+list-themes 预览现在包含光标与选区颜色。#8446
  • cli:+edit-config 现在正确处理带参数的 $EDITOR 值。#8898
  • config:command-palette-entry 现在在字段中支持逗号。#8849
  • config:含 = 的绑定值现在能正确解析。#8675
  • 滚动在把鼠标拖出窗口外时不再反转方向。#8683
  • 即使配置目录已存在,配置模板也能正确创建。#8892
  • config:把空的 XDG 环境变量视为不存在。#8830
  • shell-integration:现在为所有支持的 shell 把 GHOSTTY_BIN_DIR 加入 PATH。#8976
  • shell-integration/bash:把 ssh 包装器标记为函数以避免别名冲突。#8647
  • i18n:添加克罗地亚语(hr_HR) 翻译。#8668
  • i18n:添加繁体中文(zh_TW) 翻译。#6773
  • i18n:葡萄牙语翻译更新。#8633
  • contrib/vim:用 :setf 设置文件类型(filetype)。#8914

macOS

  • macOS:在 macOS 上实现 bell-features=border。#8768
  • macOS:bell-features=title 现在正常工作。#8766
  • macOS:进度条小组件现在在 macOS 26 上正确渲染。#8731 #8753
  • macOS:编辑配置文件时的分配错误不再导致崩溃。#8886
  • macOS:自定义 shader 现在可在 Intel GPU 上工作。#8751 #8749
  • macOS:"New Terminal" 快捷键正确把期望的配置传递给分屏。#8638
  • macOS:在 macos-custom-icon 中添加对 ~ 展开的支持。#9024
  • macOS:quick terminal 在多显示器下使用时更可靠地恢复大小。#8796
  • macOS:Ghostty 未运行时,"New Terminal" app intent 现在只打开一个终端。#8669
  • macOS:"Copy Screen to Temporary File and Open" 动作现在正确打开文件。#8763
  • macOS:window-position-x/y 现在正确以左上角为参考。#8672 #8760
  • macOS:"New Ghostty Tab Here" 服务现在打开标签页而非新窗口。#8783 #8784
  • macOS:服务不再显示"服务无法使用"的警告对话框。#8785 #8790
  • macOS:window-step-resize 现在与 Stage Manager 配合更可靠。#9020
  • macOS:在同步外观时延迟应用图标更新以改善启动时间。#8792
  • font/coretext:某些 RTL(从右到左)语言加行尾空格的崩溃不再发生。#9002

GTK(Linux、FreeBSD)

  • GTK:回车键现在确认"更改终端标题"对话框。#8949
  • GTK:把最后一个标签页拖出 Tab 概览不再崩溃。#8944 #8955
  • GTK:黑色文本的 minimum-contrast 现在设置正确颜色而不是不可见。#8782
  • GTK:quit-after-last-window-closed-delay 现在按预期工作。#9052 #9053
  • GTK:split-divider-color 现在正确应用。#8853
  • GTK:unfocused-split-fill 现在正确渲染。#8813
  • GTK:铃声特性现在在每个 BEL 字符上触发。#8962
  • GTK:重复的信号处理器不再造成多个 toast。#9001
  • GTK:恢复 Flatpak 感知的资源目录支持。#8816

面向软件包维护者的变更

  • Ghostty 现在把 Linux 上的构建限制在 32 核,以规避 Zig 中一个已知的内存损坏 bug,使 Ghostty 能在 32 核以上的机器上可靠构建。该 bug 已在 Zig 里解决,但不会向后移植到 Ghostty 1.2.x 依赖的 0.14.x 系列。#8925

路线图

我们相信未来某个时候可能还会有 1.2.2 发行,以继续解决 1.2.0 与 1.2.1 的变更所引入的小问题。可能的 1.2.2 发行很可能是周期中段的发行(数月之后),而不是快速跟进。

目前 1.2.x 系列一直非常稳定,我们不急于发布更多 bug 修复版本。我们收到了关于该发行的非常积极的反馈,很高兴看到人们在享受新特性。

更大的计划见 1.2.0 发行说明的路线图。