
Kitty:用 GPU 渲染的终端,快得不像传统终端
你有没有在终端里做过这种事——
cat 一个几十 MB 的日志文件,然后看着屏幕一行一行往下刷,滚动的时候还一卡一卡的。
或者想在终端里直接看一张图片,结果还得专门打开图片查看器。
又或者开了一堆 tmux 窗口,分屏分得自己都找不到哪个是哪个。
这些问题的答案,可能不是一个你用了十年的老终端,而是一个叫 Kitty 的新面孔。
Kitty 为什么不一样
Kitty 最核心的区别就一句话:它的渲染走 GPU,不走 CPU。
传统终端(GNOME Terminal、Konsole、xterm)的文字渲染全部由 CPU 完成。这在 80 列文字的年代完全够用,但现在终端里跑的是 tail -f、docker logs、cat application.log——输出量动辄几万行。CPU 渲染一帧文字,每到一个新行就要重新计算字形、合成位图,然后推给显示器。数据量一大,帧率就崩了。
Kitty 把整个渲染管线搬到了 GPU 上,通过 OpenGL 完成。结果就是:滚动百万行日志和滚动一百行的体验没有区别——都是丝般顺滑。
而且 GPU 渲染的附带好处是:字体渲染在任何字号下都保持清晰,连字(ligature)显示完美,Emoji 也不会糊成一团。
Kitty 是谁做的
作者是 Kovid Goyal——没错,就是那个做 Calibre 电子书管理器的 Kovid Goyal。
一个人写了两款被广泛使用的开源软件,而且质量都极高。这大概就是「天才程序员」的定义吧。
Kitty 用 C 和 Python 混合编写,核心渲染层用 C 保证性能,插件系统(叫「Kittens」)用 Python 编写方便扩展。
GitHub 上搜 kovidgoyal/kitty,Star 数 26k+,非常活跃。
那些让人回不去的功能
直接在终端看图
用 icat 这个内建 kitten,你可以在终端里直接显示图片:
kitty +kitten icat photo.jpg
支持 PNG、JPEG、GIF,甚至动态 GIF也能在终端里放。
这意味着什么?你可以在终端里看图表、截图、甚至表情包,不用切出命令行。
内建分屏和标签页,不用 tmux
Kitty 自己有完善的分屏系统,支持多种布局:
- Stack(堆叠)— 同一区域只显示一个窗口,切换 Tab
- Tall(左主右辅)— 左边主窗口,右边窄栏
- Fat(上主下辅)— 和 Tall 相反
- Grid(网格)— 均匀排列
快捷键是 Ctrl+Shift 组合,和 Shell 快捷键不冲突——Ctrl+C 还是 SIGINT,Ctrl+R 还是反向搜索。
| 操作 | 快捷键 |
|---|---|
| 新标签页 | Ctrl+Shift+T |
| 关闭标签页 | Ctrl+Shift+Q |
| 横向分屏 | Ctrl+Shift+Enter |
| 纵向分屏 | Ctrl+Shift+E |
| 切换窗口 | Ctrl+Shift+] |
浏览器用户会对这套快捷键很熟悉——就是浏览器的 Ctrl+T/Ctrl+W 加了个 Shift。
Kittens:Kitty 的插件系统
Kitty 的扩展叫「Kitten」(小猫),用 Python 写。内建了不少实用的:
icat— 在终端显示图片diff— 终端内的文件差异对比(比git diff友好多了)ssh— 增强版 SSH 客户端,保留 Kitty 的所有渲染能力hints— 快速选中屏幕上的 URL 或文件路径clipboard— 剪贴板操作
也可以自己写 kitten,十几行 Python 就能搞定一个小工具。
远程控制
Kitty 支持 IPC 控制——你可以从脚本里告诉 Kitty 新建标签页、改字体大小、获取滚动缓冲区内容。
比如给 Kitty 发一条命令:
kitty @ new-window --title "htop" htop
这在自动化工作流里非常实用。
会话管理
Kitty 支持 session 文件,可以定义启动时要打开哪些窗口、分屏布局、每个窗口执行什么命令。
一个示例 session 文件:
# ~/.config/kitty/session.conf
new_tab backend
launch cd ~/project/backend && nvim
launch cd ~/project/backend && npm run dev
new_tab monitor
layout tall
launch htop
launch cd ~/project/logs && tail -f app.log
保存后在启动时加载:
kitty --session ~/.config/kitty/session.conf
这样你的开发环境一键恢复,不用每次手动开窗口。
在 Ubuntu 上安装
方法一:APT 安装(最简单,版本可能旧一点)
sudo apt update
sudo apt install kitty
装完就能在应用菜单里找到 Kitty 了。
方法二:官方脚本安装(推荐,获取最新版本)
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
这个脚本会把 Kitty 安装到 ~/.local/kitty.app/,然后创建软链接。
创建桌面图标
如果方法二装完后应用菜单里没出现 Kitty,手动创建一下:
# 创建桌面文件
~/.local/kitty.app/bin/kitty +runpy "
from kitty.fast_data_types import *
import sys
"
# 或者直接用下面的命令
sudo ln -s ~/.local/kitty.app/share/applications/kitty.desktop /usr/share/applications/
sudo ln -s ~/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png /usr/share/icons/
启动
直接在终端输入 kitty,或者在应用菜单里搜索 Kitty 启动。
基础配置
Kitty 的配置文件在 ~/.config/kitty/kitty.conf。如果不存在,自己创建就行。
一份给新手的推荐配置:
# ~/.config/kitty/kitty.conf
# 字体
font_family JetBrains Mono
font_size 12
# 光标样式
cursor_shape beam
cursor_blink_interval 0
# 滚动缓冲区行数
scrollback_lines 10000
# 关掉烦人的蜂鸣
enable_audio_bell no
# Tab 栏样式
tab_bar_style powerline
tab_powerline_style slanted
# 背景透明度 0.95(需要窗口管理器支持)
background_opacity 0.95
# Shell 集成
shell_integration enabled
配置完不用重启 Kitty——它支持热加载,保存文件后配置立即生效。
和同类 GPU 终端对比
| 特性 | Kitty | Alacritty | WezTerm | Ghostty |
|---|---|---|---|---|
| 渲染引擎 | OpenGL | OpenGL/Vulkan | OpenGL | OpenGL/Metal |
| 分屏 | ✅ 内建 | ❌ 需 tmux | ✅ 内建 | ✅ 内建 |
| 图片显示 | ✅ icat | ❌ | ✅ 协议 | ❌ |
| 插件系统 | ✅ Kittens (Python) | ❌ | ✅ Lua | ✅ 内建 |
| 配置文件 | 纯文本 | YAML | Lua | 自定义格式 |
| Session 管理 | ✅ | ❌ | ✅ | ❌ |
| 跨平台 | Linux/macOS | Linux/macOS/Windows | 全平台 | Linux/macOS |
如果你就想要一个「纯快」的终端,Alacritty 可能更适合你,它比 Kitty 还轻量。
但如果你想要的是一台「能看图、能分屏、能写插件、能远程控制」的终端,Kitty 的功能丰富度目前没有对手。
总结
Kitty 是我用过的终端里,「性能和功能平衡得最好」的一个。
它没有 Alacritty 那么极简,但多了图片显示、内建分屏、Kitten 插件系统这些真正能提升效率的东西。它没有 Terminator 那么笨重,但在 GPU 的加持下,滚动百万行日志都如丝般顺滑。
如果你还在用 Ubuntu 自带的 GNOME Terminal,或者觉得 tmux 分屏太麻烦,花十分钟装上 Kitty 试试——也许这就是你一直在找的那个终端。
评论