经过一段时间的内测,Ghostty 在元旦前迎来了自己的正式版本。在发布之前我没有参加测试,但是也通过论坛侧面看到了一些关于 Ghostty 评价的帖子,不少用户都对其抱有较高的期望。我也在第一时间下载了这款工具,下面是我对 Ghostty 的一些介绍。
关于 Ghostty
介绍 Ghostty 主要从 4 个方面来说:原生、功能丰富、更快、开源。
原生
所谓原生,是指 Ghostty 的外观、交互等行为与系统原生终端一致。这一点在使用过程中可以明显感受到,Ghostty 的界面风格与系统终端几乎一模一样,这对于用户来说是一种很好的体验。
在 Mac 上,用户界面使用 Swift 编写,并且使用了 Appkit 和 SwiftUI。在 Linux 上,用户界面使用 Zig 编写,使用了 GTK4。
Ghostty 与运行平台特有功能系统集成。在 Mac 上, Ghostty 支持 Quick Look
,force touch
,macOS secure input API
, 重启时支持内置窗口状态恢复等。这些功能都是 macOS 提供的原生 API。(在 Linux 中没有对应 API)
功能丰富
Ghostty 的功能主要分为两大类:终端功能和应用程序功能。
在终端功能上,Ghostty 支持 Kitty
图形协议,light/dark mode notifications
,超链接等。像 Neovim, Zellij 等终端应用程序就能比其它终端模拟器发挥更多的特性。
在应用功能上, Ghostty supports native tabs
,splits
,macOS 下拉终端
、主题的 明/暗模式
等。
更快
Ghostty 的目标是与最快的终端模拟器同级。它的快主要体现在:启动时间、滚动速度、IO 吞吐量、控制序列吞吐量、帧率等方面。
未来,开发者会提供更详细的基准测试,并解释 Ghostty 在不同性能类别中的表现。
开源
Ghostty 是开源的,你可以在 GitHub 上找到它的源代码。Ghostty 的开发者希望通过开源的方式,让更多的人参与到 Ghostty 的开发中来,共同打造一个更好的终端工具。
shaders 的支持
Ghostty 的另一个特点是支持 shaders
。shaders
是一种用于渲染图形的编程语言,它可以让你在终端中显示更多的图形效果。
此仓库包含了一些 shaders 示例,可以自行引入到 Ghostty 中使用。
https://github.com/m-ahdal/ghostty-shaders
与 ghostty config 搭配食用
Ghostty 默认的配置文件是 ~/.config/ghostty/config.toml
,你可以通过修改这个文件来定制 Ghostty 的外观和行为。但是,如果你不想自己写配置文件,可以使用 ghostty config 工具来生成配置文件。
config 模版
# Config generated by Ghostty Config
title = Ghostty
clipboard-read = allow
clipboard-write = allow
window-theme = system
font-size = 18
font-family = FiraCode Nerd Font Mono
font-family-bold = FiraCode Nerd Font Mono
font-family-italic = FiraCode Nerd Font Mono
font-family-bold-italic = FiraCode Nerd Font Mono
window-title-font-family = FiraCode Nerd Font Mono
theme = Everforest Dark - Hard
custom-shaders = "~/documents/ghostty-shaders/fireworks-rockets.glsl"