从 Warp 切换到了 [[Ghostty]],理由非常简单,我使用 atuin 来同步 Shell 历史,但是 Warp 不支持,外加上 Ghostty 自带 Metal GPU 加速渲染、原生 macOS AppKit 构建、启动飞快,可以让 AI 以纯文本方式配置,就果断切换了。
让 Claude Code 给了一些初始化设置之后一直用到现在,积累了一些配置心得,整理成文。
Ghostty 是什么
Ghostty 是 HashiCorp 联合创始人 Mitchell Hashimoto 开发的开源终端模拟器。用 Zig 语言编写,macOS 上走 Metal 渲染,Linux 上走 GTK4。它的设计哲学是”零配置即可用”——默认内置 JetBrains Mono 字体和 Nerd Font 支持,开箱就能正常显示各种图标。
和 iTerm2 比,Ghostty 更轻更快;和 Warp 比,Ghostty 不会和 tmux 冲突;和 Alacritty 比,Ghostty 有原生的标签页和分屏支持。
配置文件位于 ~/.config/ghostty/config,纯键值对格式,没有复杂语法。可以使用软链接的方式放到 dotfiles 中保存。
主题配色
Ghostty 内置了 300+ 主题,可以用命令查看:
ghostty +list-themes
几个最流行的暗色主题:
| 主题 | 背景色 | 风格 |
|---|---|---|
| Catppuccin Mocha | #1e1e2e |
柔和温暖,社区生态最完整 |
| Gruvbox Dark Hard | #1d2021 |
复古暖色调,接近纯黑 |
| Tokyo Night Night | #1a1b26 |
冷色调蓝紫系,Neovim 社区标配 |
| Dracula+ | #212121 |
经典高对比,色彩鲜艳 |
| Kanagawa Wave | #1f1f28 |
日式水墨画美学 |
直接在 config 里引用内置主题名即可,支持 dark/light 自动切换:
theme = dark:Gruvbox Dark Hard,light:Gruvbox Light Hard
用内置主题的好处是 Cmd+Shift+, 热重载一定能生效。如果用自定义主题文件,改完可能需要完全重启 Ghostty。
关于 minimum-contrast
如果你在终端里跑 TUI 应用(比如 [[Claude Code]]),可能会遇到某些文字颜色和背景色对比度不足、看不清的问题。Ghostty 提供了一个 minimum-contrast 配置项,会自动调整前景色以确保最低对比度:
minimum-contrast = 1.3
值越大强制对比度越高,但也可能让部分颜色偏离主题原色。1.3 是一个比较平衡的值。
推荐配置
以下是我实际在用的配置,逐项解释。
字体
font-family = MesloLGS Nerd Font Mono
font-size = 13
font-thicken = true
font-thicken 在 Retina 屏幕上让字体稍微加粗,提升可读性。如果觉得默认字体间距太紧,可以加一个 adjust-cell-height:
adjust-cell-height = 5%
默认值是 0,即不做任何调整。25% 会明显偏大,5%~10% 是比较舒适的范围。
窗口与外观
window-colorspace = display-p3
window-padding-x = 1
window-padding-y = 1
window-padding-color = extend
window-padding-balance = true
window-step-resize = false
window-save-state = always
macos-titlebar-style = transparent
background-opacity = 0.98
几个值得注意的配置:
window-colorspace = display-p3:macOS 上启用 Display P3 广色域渲染,颜色更丰富准确。这是很多人会忽略的设置。window-padding-balance = true:让终端内容在窗口中自动居中对齐,视觉上更舒适。window-save-state = always:关闭再打开 Ghostty 时恢复之前的窗口位置、标签页和分屏状态。这个设置非常重要——默认值default在 macOS 自动更新重启后可能丢失所有 session。background-opacity = 0.98:轻微透明,能隐约看到下方窗口但不影响阅读。如果想要更明显的毛玻璃效果,可以降到0.85并配合background-blur-radius = 20。
光标与交互
cursor-style = block
cursor-style-blink = false
adjust-cursor-thickness = 2
mouse-hide-while-typing = true
mouse-scroll-multiplier = 2
link-url = true
mouse-scroll-multiplier = 2:默认滚动速度偏慢,翻倍后浏览长输出更高效。link-url = true:终端里的 URL 可以Cmd+点击直接在浏览器打开。
安全与行为
clipboard-paste-protection = true
clipboard-trim-trailing-spaces = true
copy-on-select = true
macos-auto-secure-input = true
confirm-close-surface = false
auto-update = check
scrollback-limit = 10000
clipboard-paste-protection = true:粘贴内容包含换行符时弹出确认,防止误执行命令。这是一个安全功能,建议保持开启。Ghostty 1.3 还修复了一个粘贴注入的安全漏洞(CVE-2026-26982)。confirm-close-surface = false:关闭标签页或分屏时不弹确认框,减少打断。auto-update = check:只检查更新但不自动安装重启,避免意外中断工作。scrollback-limit = 10000:控制回滚缓冲区为 1 万行。默认值很大,如果不限制可能在长时间运行后消耗大量内存。
Shell 集成
shell-integration-features = no-cursor,sudo,title
Ghostty 的 Shell Integration 是一个被低估的功能。启用后可以:
Cmd+Up/Cmd+Down:在终端输出中按命令提示符跳转,快速定位到每条命令的位置sudo:输入 sudo 时自动提示title:标签页标题显示当前运行的命令
no-cursor 是因为我自己在 config 里定义了光标样式,不需要 Shell Integration 再覆盖。
macOS 图标自定义
Ghostty 支持自定义 Dock 图标样式,可以让它和你的主题配色统一:
macos-icon = custom-style
macos-icon-frame = plastic
macos-icon-ghost-color = #ebdbb2
macos-icon-screen-color = #1d2021
这里的颜色用了 Gruvbox 的前景色和背景色,让图标融入整体视觉。
快捷键配置
基础快捷键
Ghostty 的默认快捷键已经很合理,但有几个值得自定义的:
macos-option-as-alt = true
keybind = cmd+right=text:\x05
keybind = cmd+left=text:\x01
keybind = cmd+backspace=text:\x15
macos-option-as-alt = true:让 Option 键作为 Alt 使用,这对 tmux 和 Vim 用户来说是必需的。Cmd+Left/Right:映射到行首/行尾(Ctrl+A / Ctrl+E),符合 macOS 的编辑习惯。Cmd+Backspace:删除整行(Ctrl+U)。
内置分屏
如果不用 tmux,Ghostty 原生就支持分屏:
| 快捷键 | 功能 |
|---|---|
Cmd+D |
垂直分屏 |
Cmd+Shift+D |
水平分屏 |
Cmd+[ / Cmd+] |
切换分屏焦点 |
Cmd+Shift+Enter |
当前分屏最大化/还原 |
配置热重载
Cmd+Shift+, 是 Ghostty 的默认热重载快捷键,不需要额外绑定。修改 config 文件后直接按这个组合键就能生效。但注意:如果修改的是自定义主题文件(而非内置主题),可能需要完全重启才能生效。
Quick Terminal(Quake 下拉终端)
Ghostty 内置了 Quake 风格的下拉终端,用一个全局快捷键可以在任何应用中呼出/收起:
keybind = global:f12=toggle_quick_terminal
这个功能和 iTerm2 的 Visor 模式类似,不需要依赖 Hammerspoon 或其他工具。Quick Terminal 是一个独立于主窗口的轻量终端,适合快速执行一两条命令。
不过如果你已经用 Hammerspoon 做了类似的快捷键绑定(比如 F12 切换 Ghostty 窗口),两者会冲突,需要二选一。
但是你如果依赖 Ghostty 的 Tab,那么还是建议使用 Hammerspoon 来配置。
自定义 Shader 背景
Ghostty 利用 GPU 渲染的优势,支持自定义 GLSL 片段着色器作为终端背景。可以实现 CRT 复古效果、动态渐变、光晕等视觉效果:
custom-shader = ~/.config/ghostty/shaders/bloom.glsl
custom-shader-animation = true
多个 shader 可以叠加使用:
custom-shader = ~/.config/ghostty/shaders/tft.glsl
custom-shader = ~/.config/ghostty/shaders/bettercrt.glsl
custom-shader = ~/.config/ghostty/shaders/bloom.glsl
社区有不少现成的 shader 集合,比如 ghostty-watercolors 提供了水彩画风格的背景。
终端内显示图片
Ghostty 支持 Kitty 图片协议,可以在终端内直接显示图片。配合 imgcat 或 Kitty 的 icat 工具,可以在 SSH 远程服务器上生成图表后直接在终端里预览,不需要再 scp 到本地打开。
Inspector 调试工具
按 Cmd+Shift+I 可以打开 Ghostty 的内置 Inspector,能查看每个 cell 的属性、颜色值、字体渲染信息。排查显示问题时非常有用——比如某个字符颜色不对,可以用 Inspector 精确查看它用了哪个 palette 颜色。
Ghostty 1.3 新功能
如果你还在用旧版本,强烈建议升级到 1.3。这个版本包含了 6 个月的开发工作,180 位贡献者的 2800+ 次提交,几个亮点功能:
- Scrollback Search:
Cmd+F搜索终端历史输出,用独立线程实现,不影响终端 I/O 性能 - Click to Move Cursor:在 shell 提示符中点击鼠标直接定位光标位置
- 原生滚动条:新增
scrollbar配置项 - 进程完成通知:长时间运行的命令结束后收到系统通知
- AppleScript 支持:可以用脚本自动化控制 Ghostty
- Split 拖拽:拖拽调整分屏边界大小
升级方式:
brew upgrade --cask ghostty
我的完整配置
# vim: ft=ghostty
# Font
font-family = MesloLGS Nerd Font Mono
font-size = 13
font-thicken = true
window-inherit-font-size = true
# Look and Feel
theme = dark:Gruvbox Dark Hard,light:Gruvbox Light Hard
window-colorspace = display-p3
window-padding-x = 1
window-padding-y = 1
window-padding-color = extend
window-padding-balance = true
window-step-resize = false
macos-icon = custom-style
macos-icon-frame = plastic
macos-icon-ghost-color = #ebdbb2
macos-icon-screen-color = #1d2021
adjust-cursor-thickness = 2
cursor-style = block
cursor-style-blink = false
minimum-contrast = 1.3
link-url = true
macos-titlebar-style = transparent
mouse-hide-while-typing = true
mouse-scroll-multiplier = 2
window-save-state = always
background-opacity = 0.98
# Behavior
clipboard-paste-protection = true
clipboard-trim-trailing-spaces = true
copy-on-select = true
macos-auto-secure-input = true
macos-secure-input-indication = true
confirm-close-surface = false
quit-after-last-window-closed = false
auto-update = check
scrollback-limit = 10000
shell-integration-features = no-cursor,sudo,title
# Key bindings
macos-option-as-alt = true
keybind = cmd+right=text:\x05
keybind = cmd+left=text:\x01
keybind = cmd+backspace=text:\x15
最后
Ghostty 的设计哲学是”默认即合理”,大多数情况下不需要太多配置就能用得很舒服。上面这些配置是我在实际使用中逐步调整出来的,核心思路是:用内置主题、启用 P3 广色域、控制内存占用、减少不必要的确认弹窗。
如果你从 iTerm2 迁移过来,最大的区别可能是配置方式——从 GUI 菜单变成了纯文本文件。但习惯之后会发现这种方式更适合版本控制和跨设备同步,把 config 文件放到 dotfiles 仓库里就行了。