当前位置: 首页 > news >正文

Ghostty:快速、原生且功能丰富的终端模拟器,兼顾速度、功能与原生 UI!

突发!Ghostty:快速、原生且功能丰富的终端模拟器,引领现代特性

Ghostty 是一款以快速、功能丰富和原生为特色的终端模拟器,在市面上脱颖而出。市面上虽有众多优秀的终端模拟器,但往往让用户在速度、功能或原生 UI 之间做出取舍,而 Ghostty 三者兼得。

关于 Ghostty

它不仅有原生 GUI,还能通过 libghostty 作为可嵌入库使用。libghostty 是一个跨平台、零依赖的 C 和 Zig 库,可用于构建终端模拟器或利用终端功能(如样式解析)。任何人都能使用 libghostty 构建终端模拟器,或将终端嵌入到自己的应用程序中。可参考 Ghostling 这个完整的最小项目示例,或查看示例目录中 C 和 Zig 使用 libghostty 的小示例。更多详情可查看“关于 Ghostty”。

下载与文档

可在 Ghostty 网站的下载页面获取下载资源,也可在该网站查看文档。

贡献与开发

若你对 Ghostty 有任何想法、遇到问题,或想通过拉取请求为其做贡献,请查看“为 Ghostty 做贡献”文档。想要参与 Ghostty 开发的人,也应阅读“开发 Ghostty”文档以了解更多技术细节。

路线图与状态

Ghostty 稳定可靠,每天有数百万用户和设备在使用。该项目的宏伟计划按以下步骤推进:

  1. 符合标准的终端仿真:✅
  2. 具备竞争力的性能:✅
  3. 丰富的窗口功能(多窗口、标签页、窗格):✅
  4. 原生平台体验:✅
  5. 用于可嵌入终端的跨平台 libghostty:✅
  6. 仅适用于 Ghostty 的终端控制序列:❌

以下是每个步骤的详细信息:

符合标准的终端仿真:Ghostty 实现了所有常用的控制序列,能毫无问题地运行所有主流终端程序。对于遗留序列,团队对 Ghostty 的行为与 xterm 进行了全面审核,并构建了一系列一致性测试用例。除了遗留序列(即真正的“终端”仿真),Ghostty 支持的现代序列比其他几乎所有终端模拟器都多,包括 Kitty 图形协议、Kitty 图像协议、剪贴板序列、同步渲染、明暗模式通知等。Ghostty 被认为是最符合标准且功能丰富的终端模拟器之一。终端行为部分遵循法定标准(如 ECMA - 48),但大多是由全球流行的终端模拟器定义的事实标准。Ghostty 的行为定义顺序为:(1)若有标准则遵循标准;(2)若功能存在则参考 xterm;(3)参考其他流行终端。

具备竞争力的性能:Ghostty 与其他高性能终端模拟器处于同一性能级别。这意味着它比传统或“慢速”终端快得多,与知名的“快速”终端性能差距极小。例如,在各种基准测试中,Ghostty 和 Alacritty 的性能通常相差几个百分点,但都比 Terminal.app 和 iTerm 快约 100 倍。不过,Ghostty 比 Alacritty 功能更丰富,且具有更原生的应用体验。这种性能通过高层架构决策和底层优化实现。从高层来看,Ghostty 采用多线程架构,每个终端都有专门的读取线程、写入线程和渲染线程。其渲染器在 Linux 上使用 OpenGL,在 macOS 上使用 Metal。读取线程有一个经过高度优化的终端解析器,利用了 CPU 特定的 SIMD 指令。

丰富的窗口功能:Mac 和 Linux(使用 GTK 构建)应用支持多窗口、标签页和分割功能,还有标签重命名、着色等额外特性。这些功能比单窗口终端提供了更高程度的组织性和定制性。

原生平台体验:Ghostty 是跨平台终端模拟器,但并非追求最低共同标准的体验。它有一个用 Zig 编写的大型共享核心,但也做了很多平台原生的事情。macOS 应用是一个基于 SwiftUI 的真正应用,具备真实窗口、菜单栏、设置 GUI 等。macOS 使用真正的 Metal 渲染器和 CoreText 进行字体发现,还支持 AppleScript、Apple Shortcuts(AppIntents)等。Linux 应用使用 GTK 构建,若系统支持 systemd,它会与之深度集成,实现始终开启、单实例新窗口、cgroup 隔离等功能。Ghostty 的目标是让各平台用户都觉得它是为自己的平台量身打造的,在每个平台上都有原生应用的感觉。

用于可嵌入终端的跨平台 libghostty:除了作为独立的终端模拟器,Ghostty 还是一个与 C 兼容的库,可将快速、功能丰富的终端模拟器嵌入到任何第三方项目中,即 libghostty。由于项目范围较大,团队将 libghostty 拆分为多个独立库,从 libghostty - vt 开始。该项目的目标是专注于解析终端序列和维护终端状态,相关内容在博客文章中有更详细介绍。libghostty - vt 目前已可用于 Zig 和 C,兼容 macOS、Linux、Windows 和 WebAssembly。其功能非常稳定(因为在 Ghostty GUI 中已得到长期验证),但 API 签名仍在变动中。libghostty 已被广泛使用,可查看示例了解 C 和 Zig 使用 libghostty 的小示例,或参考 Ghostling 项目获取完整示例。可查看 awesome - libghostty 获取与 libghostty 相关的项目和资源列表。目前 libghostty 尚未标记版本,团队仍在完善文档体验,但 Doxygen 网站是 C API 的不错参考资源。

仅适用于 Ghostty 的终端控制序列:团队认为终端应用可以且应该有更多功能。为此,他们努力支持其他终端模拟器创建的各种现代序列,同时也想通过创建自己的序列来填补空白。但此前一直有所顾虑,因为不想因创建仅适用于 Ghostty 的序列而导致终端生态系统更加碎片化。不过,团队也希望在推动终端发展与应对停滞的标准和缓慢的变革速度之间取得平衡,目前这方面尚未开展工作。

崩溃报告

Ghostty 内置了崩溃报告器,会生成崩溃报告并保存到磁盘。崩溃报告保存到 $XDG_STATE_HOME/ghostty/crash 目录,若 $XDG_STATE_HOME 未设置,则默认保存到 ~/.local/state。崩溃报告不会自动发送到设备外,仅在 Ghostty 崩溃后下次启动时生成。若 Ghostty 崩溃且你想生成崩溃报告,必须至少重启一次 Ghostty,此时日志中会显示已生成崩溃报告。可使用 ghostty +crash - report CLI 命令获取可用崩溃报告列表。未来版本的 Ghostty 将通过 CLI 和 GUI 更方便地查看崩溃报告内容。崩溃报告以.ghosttycrash 为扩展名,采用 Sentry 信封格式。你可将其上传到自己的 Sentry 账户查看内容,该格式也有公开文档,因此也可使用其他工具。使用 ghostty +crash - report CLI 命令可列出所有崩溃报告,未来版本的 Ghostty 将直接在终端显示崩溃报告内容。若要将崩溃报告发送给 Ghostty 项目,可使用以下 CLI 命令(使用 Sentry CLI):

SENTRY_DSN=https://e914ee84fd895c4fe324afa3e53dac76@o4507352570920960.ingest.us.sentry.io/4507850923638784

sentry - cli send - envelope --raw

警告:崩溃报告可能包含敏感信息。报告本身不会故意包含敏感信息,但包含崩溃时每个线程的完整堆栈内存。这些信息用于重建堆栈跟踪,但根据崩溃发生的时间,也可能包含敏感数据。

http://www.jsqmd.com/news/732919/

相关文章:

  • 手把手解决STM32H7 FDCAN接收异常:扩展帧滤波的29位掩码到底怎么设?
  • LSRIF框架:逻辑结构化强化学习在指令跟随任务中的应用
  • 别再傻傻分不清了!一文讲透工业4.0里的Smart Manufacturing和Intelligent Manufacturing
  • 别再让信号源‘带不动’了!用电压跟随器轻松解决反相放大器输入阻抗低的烦恼
  • 从数据洞察到业务成果:构建闭环结果引擎的架构与实践
  • Cursor Pro免费激活终极指南:一键解锁AI编程全功能
  • ROS2 Foxy编译Azure Kinect驱动报错?手把手教你搞定tf2_geometry_msgs头文件缺失
  • 如何将无人机照片秒变专业三维地图:OpenDroneMap完全指南
  • 企业级应用如何通过访问控制与审计日志保障API调用安全
  • 在团队开发中利用 Taotoken CLI 统一配置多工具 AI 环境
  • 2026年5月评价高的锰砂公司哪家权威厂家推荐榜,除铁除锰锰砂、地下水处理专用锰砂、高含锰量锰砂厂家选择指南 - 海棠依旧大
  • AI技术分享:如何做好职场内部技术培训
  • 从Okta到阿里云:手把手教你配置SAML 2.0单点登录(含SP与IdP两端详细截图)
  • 对比官方价格,Taotoken平台折扣活动为个人开发者带来的实惠感知
  • 如何高效解决网易云音乐NCM格式播放限制:完整技术方案指南
  • 【仅限Q2开放】MCP 2026告警效能诊断工具包(含日志熵值检测器、上下文漂移评分器、告警风暴熔断开关)——首批500份已激活,剩余127份
  • 【限时解禁】Tidyverse核心团队2025闭门会议纪要:2.0架构演进路线、弃用模块及2026 Q1强制升级节点
  • BilibiliDown:5分钟搞定B站视频下载,小白也能轻松上手
  • 从RTX 3060到3090:手把手教你根据DeepFaceLab模型类型选对显卡(附避坑指南)
  • 5分钟掌握Vue.Draggable:让列表拖拽变得如此简单
  • 基于MCP协议构建AI邮件助手:安全连接LLM与个人邮箱的实践指南
  • 告别重复劳动:PyMacroRecord 1.4.0如何用宏录制技术重塑你的工作效率
  • 2026年ChatGPT 5.4镜像站核心技术架构深度拆解与国内免费体验教程
  • 如何在Mac上获得终极Android USB网络共享:HoRNDIS驱动的完整指南
  • 【android开发】:android真机测试
  • 如何打造终极电视盒子播放器:TVBoxOSC完全配置指南
  • 深度解析STL文件缩略图生成器stl-thumb:Rust与OpenGL的完美结合
  • 从AHCI协议到代码落地:用Wireshark抓包分析SATA FIS的‘对话’过程(附实战截图)
  • 轻量化AI边缘计算节点搭建:用RDK X3模组+微雪Nano载板打造30g以内的计算单元
  • ASP.NET Core WebApi部署避坑:Windows Server 2016上IIS配置的5个关键细节