跳到内容

Paneflow 0.8.1:libghostty-vt 在 Windows 上取代 Alacritty

发布于
更新于

关于 0.8.1 版本。 本文记录 2026 年 7 月的 Windows 迁移。下文的 terminal.backend 设置适用于当时的版本。Paneflow 0.17.4 在所有发布平台上使用 Ghostty,已不再包含 Alacritty。现在安装请参阅 Windows 安装指南。

Paneflow 0.8.1 将 libghostty-vt 设为官方 Windows x64 构建的默认终端引擎。当 terminal.backend 未设置或设为 auto 时,新会话使用 Ghostty。

这次迁移延续了 Paneflow 0.8.0 的 Linux 支持。它改变了 Paneflow 解释终端输出和编码输入的方式,同时保留 ConPTY 连接 Shell、GPUI 负责渲染的架构。

Ghostty 应用图标与 Windows 标志一同位于蓝色和淡紫色的风景中

ConPTY 连接 Shell,Ghostty 解释终端

Paneflow 通过 portable-pty 打开 Windows 伪终端,底层使用 ConPTY,再将 Shell 的 UTF-8 输出传给 libghostty-vt。引擎解释终端序列,维护屏幕、光标和回滚历史,还处理 Unicode 字符、换行、调整大小后的文本重排,以及键盘和鼠标输入编码。

Paneflow 随后将终端状态复制到 Rust 快照,交给 GPUI 绘制。复制将渲染数据与 Ghostty 的原生内存分开:终端之后的更新不会使当前帧使用的数据失效。

Paneflow 嵌入的是 Ghostty 终端库。面板、会话、进程管理、持久化和界面仍由 Paneflow 负责。

Windows 输入与会话关闭

移植还需要处理引擎周围的流程。Windows 会话宿主合并尺寸调整请求,在关闭前读取剩余输出,并等待读取线程结束。多个面板同时运行时,它会限制排队等待处理的输出量。

输入支持包括 AltGr、死键、输入法编辑器(IME)确认的文本、粘贴、剪贴板、鼠标和焦点事件。0.8.1 还修复了按键转换和 ConPTY 中的 Shift+Enter 处理,保留使用该快捷键的智能体中的多行输入。

输出量较大时,重绘通知会合并处理,避免不必要的渲染。这些改动涉及输入、显示和关闭,不改变面板或工作区的组织方式。

引擎已集成到 Windows 可执行文件

官方 x64 可执行文件静态链接 ghostty-vt-static.lib。无需安装 Ghostty 或 Zig,也无需添加 Ghostty DLL。MSI 安装的 Paneflow 已内置该引擎。

仓库固定 Ghostty 源代码提交和原生工具链,同时记录头文件、Rust 绑定、构建元数据、许可证和校验和。CI 将原生归档与 Windows 应用分开重新构建,以检查应用使用的是否为预期构件。

固定版本也意味着维护成本:更新引擎时,需要一起检查原生归档和对应的绑定。

0.8.1 仍可切换回 Alacritty

在 0.8.1 的官方 Windows x64 构建中,auto 和 ghostty 都选择 Ghostty。若要在新会话中使用之前的引擎,当时可以在 paneflow.json 中设置 alacritty:

{
  "terminal": {
    "backend": "alacritty"
  }
}

设置仅适用于新建会话。如果 Ghostty 在 Shell 进程启动前失败,Paneflow 可以回退到 Alacritty 一次。启动后,会话会保留原有引擎;恢复不会再启动一个 Shell,也无需删除工作区数据。

这次迁移覆盖 Windows x64 MSVC,使其与 Linux x86_64 和 ARM64 使用同一终端核心。其他 Windows 目标和 macOS 在该版本中仍使用 Alacritty。

继续此工作流

所有文章

在 Paneflow 中启动你的下一个智能体。