跳到内容
Windows

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

Paneflow 0.8.1libghostty-vt 带到了原生 Windows 构建中。在官方 x64 MSI 中,当省略 terminal.backend 或将其保留为 auto 时,每个新终端会话现在都会选择 Ghostty。

这延续了 Paneflow 0.8.0 在 Linux 上发布的终端引擎迁移。Paneflow 现在默认在 Linux x86_64、Linux ARM64 和 Windows x64 MSVC 上使用同一个 Ghostty VT 核心。Alacritty 仍在每个平台上作为显式恢复后端提供,并继续作为 macOS 和不受支持目标上的默认选择。

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

Ghostty 引擎现在运行在 ConPTY 上

Paneflow 在 VT 引擎层集成 Ghostty。libghostty-vt 解析终端序列,维护网格和光标状态,处理字素、换行和重排,并对键盘与鼠标输入进行编码。窗口、窗格、会话、进程生命周期、持久化和 GPUI 渲染仍由 Paneflow 管理。

Windows 移植为该引擎增加了原生主机。Paneflow 通过 portable-pty 打开伪终端,它在 Windows 上使用 ConPTY,然后将 UTF-8 输出交给 libghostty-vt。在 GPUI 绘制之前,Ghostty 状态会被复制到拥有所有权的 Rust 快照中。Paneflow 没有嵌入 Ghostty 应用、它的界面或渲染器。

这种边界划分在 Windows 上很重要。ConPTY 负责 Shell 连接和操作系统的进程约定,Ghostty 负责解释终端,Paneflow 负责产品和最终像素。因此,同一个与后端无关的渲染器可以显示 Alacritty 或 Ghostty 会话,无需增加 Windows 专用渲染路径。

移植需要完整的 Windows 生命周期

能在 Windows 上编译静态库只是第一步。终端会话还需要为 PowerShell、命令提示符、TUI 和编码智能体确定性地处理启动、调整大小、输出排空、关闭以及后代进程清理。

Windows Ghostty 主机会合并 ConPTY 的尺寸调整,在关闭会话前排空最终输出,在退出前等待读取线程结束,并在多个窗格同时产生输出时限制背压。Paneflow 0.8.1 还会批量处理 Windows Ghostty 的重绘,避免不必要的渲染工作。

输入也通过同一个边界。该集成覆盖 Ghostty 键盘编码、AltGr、死键、IME 提交、粘贴、剪贴板、鼠标、焦点和链接。0.8.1 中最后两个修复会保留通过 ConPTY 的多行 Shift+Enter 输入,包括使用该快捷键插入换行的编码智能体提示词。

Paneflow 内置固定版本的静态 MSVC 构件

官方 Windows x64 构建包含固定版本的 ghostty-vt-static.lib 归档。其源代码提交、Zig 工具链、头文件、生成的 Rust 绑定、符号、构建元数据、许可证和校验和都在仓库中跟踪。

用户无需安装 Ghostty、Zig、DLL 或其他运行时。标准 MSI 在 Paneflow 构建期间使用经过验证的归档,最终可执行文件会静态链接该引擎。原生重建与消费该归档的 Windows 构建保持分离,使 CI 能在发布前发现源代码、ABI 或构件漂移。

Paneflow 将原始 C ABI 限制在 -sys crate 内,并在其上提供安全的 Rust 所有权。原生句柄由对应的 Ghostty 分配器释放,回调 panic 被限制在 FFI 边界内,借用的 Ghostty 行或单元格不会越过终端锁的生命周期或帧边界。

Ghostty 自动启用,Alacritty 只需一项设置即可恢复

Windows 上的 terminal.backend 接受三个值:autoghosttyalacritty。在 Paneflow 0.8.1 官方 x64 构建中,autoghostty 都会选择 Ghostty 引擎。若要为新建会话强制使用之前的后端,请在 paneflow.json 中设置 alacritty

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

该设置只适用于新会话。如果 Ghostty 在 Shell 进程创建前失败,Paneflow 可以回退到 Alacritty 一次。进程启动后,会话不会切换后端,Paneflow 也不会在后台再启动第二个 Shell。

这条恢复路径让终端故障保持局部且可逆。你可以在不重新安装 Paneflow、不更改工作区数据的情况下回到 Alacritty,并在问题查明后重新切换到 auto

Linux 与 Windows 共用一个终端核心

Paneflow 0.8.0 在 Linux 上建立了引擎边界。0.8.1 表明,即使 PTY 和进程模型差异很大,这条边界也能跨平台工作,而无需将平台细节带入渲染器或工作区模型。

Windows ARM64 不在本次发布范围内,仍使用 Alacritty。macOS 在单独评估 Ghostty 路径期间也继续使用 Alacritty。在受支持的 Linux 和 Windows 构建上,auto 现在含义一致:Ghostty 负责终端核心,GPUI 负责渲染,Paneflow 负责其周围的多智能体工作区。

安装 Paneflow 0.8.1,打开一个新窗格,然后运行你日常使用的 PowerShell、WSL Shell、TUI 或编码智能体。如果终端行为出现回归,请将新会话的 terminal.backend 设置为 alacritty,并报告 Shell、Windows 版本、命令以及最短复现步骤。

最新文章

所有文章