Ghostty 1.1.1
Ghostty 1.1.1 的发行说明,发布于 2025 年 2 月 13 日。
Ghostty 1.1.1 由 13 位贡献者 在 125 个提交 中完成,历时两周。本次发布的重点是修复 1.1.0 发行版中引入的回退或 bug。我们也在既有特性中顺带加入了一些不错的改进。
Important
在 macOS 上的 Ghostty 1.1.1 中发现一个重大回退:使用 Kitty Keyboard 协议的程序(如 Neovim 和 Fish 4.0)中 control 修饰键无法正常工作。此问题已在 1.1.2 中修复。
PR:#5533
Ghostty 1.1.0 引入了对 Linux Wayland 合成器上服务器端装饰(SSD)的支持。这使 Ghostty 在更多种桌面环境上的观感与体验更接近原生应用。不过,它在 X11 上并不生效。
通过 Ghostty 1.1.1,当 window-decoration = server 时我们在 X11 上也加入了 SSD 支持。X11 没有提供标准方法告知我们它偏好 SSD 还是客户端装饰(CSD),因此 X11 上的 SSD 只在显式配置 server 时生效,auto 值下不生效。
Ghostty 1.1.0 在 IME 支持上投入了大量精力,但讽刺的是破坏了没有激活输入法的场景(GTK "simple" 输入法)。这已在 1.1.1 中修复。1.1.0 的变通办法是安装 ibus 或 fcitx。现在不再需要,"simple" 输入法应能按预期工作。
此外,在 macOS 上,改进的 IME 支持导致某些键盘布局无法输入控制字符(如 ctrl+c)。这已在 1.1.1 中修复。
原来 Ghostty 在 macOS 上使用独立显卡时会触发未定义行为。实际上这只影响 Intel Mac,因为所有 Apple Silicon Mac 都有集成显卡,且 Ghostty 为省电总是偏好集成显卡(如果可用)。
该未定义行为有时正常,有时导致渲染伪影或其他奇怪的视觉表现。我们现在正确检测独立显卡,并使用正确的 API 与行为来避免未定义行为。
在各节中,我们尽量把改进排在 bug 修复之前。
goto_split与goto_tab现在可与performable:keybind 前缀正常配合。#5644+list-actionsCLI 命令现在包含没有关联文档的动作。#4958- 为终端检查器的终端 IO 窗口添加键盘导航。#3909
- 修复屏幕上有 Kitty graphics 时重置终端可能发生的崩溃。#5693
- 修复超大 OSC8 超链接可能发生的崩溃。可能还有其他能触发该崩溃的场景,但这整类崩溃已解决。#5666
- 修复光标颜色与背景色相同时光标下字符不可见的问题。#5570
- 修复加载非文件主题时可能发生的崩溃。#5632
- iTerm2 配色主题更新至 db227d159。#5511
- macOS:添加若干新的另类手绘图标选择。可以用
macos-icon配置设置。#5696 - macOS:启动时把窗口置于最后一个获得焦点的窗口的位置,遵循其他原生 macOS 应用的行为。#5529
- macOS:现在如果存在需要关闭确认的处于活动状态但隐藏的 quick terminal,也会显示关闭确认。#5450
- macOS:修复控制字符在某些键盘布局上不工作的问题。#5448
- macOS:修复调用
move_tabkeybind 时的图形闪烁。#5729 - macOS:
toggle_visibility现在从全局 keybind 调用时恢复焦点到正确的标签页。#5692 - macOS:修复某些命令字符(如
cmd+backtick)会把未修饰的字符泄漏进终端的问题。#5558 - macOS:窗口处于原生全屏时
toggle_visibility不再有任何效果。此前它会导致窗口失去焦点。#5472 - macOS:修复独立显卡的未定义行为。#5625
- macOS:把 Sparkle 依赖更新至 2.6.4 以修复安全问题。#5598
- GTK:服务器端装饰(SSD)现在在 X11 上可用。#5533
- GTK:把
WINDOWID环境变量设为 X11 窗口 ID。#5650 - GTK:修复某些情况下右键菜单位置不正确的问题。#5710
- GTK:"simple" 输入法现在正常工作。#5550
- GTK:添加禁用色彩管理的选项以规避 GTK bug。#5593
- GTK:
window-decoration=none在 GNOME 上正常工作。#5463 - GTK:未使用 CSD 时移除边框等 CSD 样式。#5581
- GTK:Nautilus 集成现在使用命名规范的文件。#5469
- GTK:clone 后关闭 cgroup 文件描述符,以避免小的 fd 泄漏。#5515
- 引入了一个新的 Zig 依赖
zig-gobject。它采用 0BSD 许可证。引入该依赖不会改变现有的 Ghostty 打包流程。
本次发行时我们没有计划后续补丁发行。我们相信剩余的 bug 很小,可以在未来更大的 1.2.0 发行中解决。我们会继续监控 issue tracker 和 pull requests,以发现可能出现的重大问题。
重点将转向 1.2.0 发行。这将是一次更大的发行,包含更显著的变更与特性。其时间表尚未确定,但可能还要数月。
1.2.0 为 Linux 规划的一个重大破坏性变更是要求 libadwaita。我们在 1.1.0 发行中宣布了这一意向,并征求反馈。在提供反馈前,请仔细阅读关于该变更的细节。