Kitty 是一款跨平台、基于 GPU 加速的高性能终端模拟器。近日,该项目发布了 v0.50 版本,带来了窗口停靠、状态恢复等核心功能更新。

主要新功能概览
窗口停靠 (Docked Windows) [v0.50]
用户现在可以将 Kitty 窗口“停靠”在另一个窗口或标签页的边缘。这一特性适用于显示状态栏、文件树或编辑器侧边栏等场景。停靠的窗口会跟随主窗口移动至其他标签页,并在主窗口关闭时同步关闭。可通过启动参数 --type=window-dock 或 --type=tab-dock 创建停靠窗口,且该配置可保存至会话中。
退出后状态恢复 [v0.50]
Kitty 现已支持在退出应用、重启系统或关机时保存当前状态。重新启动后,每个 Kitty 实例将自动恢复所有操作系统窗口、标签页和子窗口布局。在 macOS 平台上,保存的状态数据使用存储在钥匙串中的密钥进行加密。
自定义着色器 (Custom Shaders) [v0.49]
Kitty 正式支持自定义着色器,用于实现动画背景、焦点高亮以及光标移动或鼠标点击时的视觉特效。官方文档提供了多种内置着色器的视频演示。
性能优化 [v0.49]
本版本重点提升了吞吐量,实际有效处理速度预计提升 15-35%。具体优化措施包括:
- 滚动回溯内存预取:在处理大量文本时,通过预先获取大于 CPU 缓存的滚动回溯缓冲区,吞吐量提升约 35%。
- ASCII/Unicode 批量写入:跳过热路径中不必要的记账操作,直接批量写入普通 ASCII 字符串,使 ASCII 吞吐量提升约 50%,Unicode 提升约 15%。
- SIMD UTF-8 解码加速:在 x86 和 ARM 架构上,利用矢量对处理平面 ASCII 文本并在 128 位通道内压缩解码码点,避免昂贵的交叉通道操作。ASCII 解码速度提升 20%,多字节文本提升 50%。新增基于 AVX-512 的解码器(需 Intel Ice Lake+ 或 AMD Zen 4+ 支持),在多字节文本处理上进一步提速 75%。
- 转义代码解析优化:改为每输入缓冲区仅锁定一次而非每次转义代码,并使用更高效的算法解析 CSI 参数,重输入吞吐量提升约 30%。
- SIMD 查找可打印字符:利用宽存储器填充单元并跳过无图像时的不必要工作,提升纯文本处理效率。
- 像素组合矢量化:图形协议图像和动画的 Alpha 混合速度提升 2-3.5 倍,字形 Alpha 掩膜合成也采用相同的矢量化原语。
- HarfBuzz 结果缓存:针对重复出现的短运行文本(≤32 个单元格)缓存排版结果,避免重新绘制相同屏幕文本时的重复计算。
垂直标签栏 [v0.48]
支持在操作系统窗口的左侧或右侧显示垂直标签栏,适合大尺寸窗口用户。
拖放终端程序 [v0.47]
允许在 Kitty 与任何 GUI 程序(如文件管理器或 Web App)之间拖放文件,甚至支持通过 SSH 远程操作。该功能由新协议驱动,使得任意 TUI 程序也能使用拖放交互。
鼠标体验增强 [v0.46]
引入平滑滚动和基于动量的滚动机制,提供更自然的浏览体验。此外,用户可通过鼠标拖动标签页进行重新排序、移动至其他 Kitty 窗口或分离为独立操作系统窗口。长期呼声较高的“鼠标调整分割窗口大小”功能也已实现。
快速选择文件 [v0.45]
新增键盘优先的文件选择界面,支持语法高亮的文本预览、图像、视频及电子书等内容。该功能类似于 fzf,但专为文件设计,可利用 Kitty 的图像显示和可变字体大小特性。在 Linux 上,它还可替代 GUI 程序中的文件打开/保存对话框。
会话管理 [v0.43]
用户可以定义在 Kitty 中运行的标签页、窗口和程序,也可手动设置布局并保存为会话文件。
滚动条 [v0.43]
Kitty 终于加入了可视滚动条,支持鼠标浏览回滚历史。当向后滚动时滚动条会自动出现,可在 kitty.conf 中进行广泛配置。旧的 scrollback_indicator_opacity 选项已弃用。
多光标支持 [v0.43]
终端应用程序现可使用多个原生渲染的光标,常用于编辑器中同时修改多处内容。终端编辑器可以使用原生光标,体验接近 GUI 编辑器。
一键访问 Kitty [v0.42]
提供快捷键即时访问 Kitty 的各项功能。
多字号文本 [v0.40]
Kitty 是首个引入“多字号文本”概念的大型终端。运行其中的程序可选择使用和显示不同字体大小的文本,且不影响传统终端程序的兼容性。详见“文本大小协议”文档。
标签线索动画 [v0.37]
当文本光标大幅跳跃时,显示动画路径以辅助追踪光标位置。灵感源自 neovide,可与终端多路复用器和 Kitty 窗口配合使用。该功能默认关闭,需在 kitty.conf 中启用 cursor_trail 选项。
可变字体支持 [v0.36]
Kitty 支持 OpenType 可变字体,允许精确调整字重、间距等特征。同时引入了新的字体选择工具,结合现有的 symbol_map、text_composition_strategy、font_features 和 modify_font 等功能,提供更精细的字体定制能力。
桌面通知 [v0.36]
支持通过命令行发送桌面通知,包括通过 SSH 发送。功能涵盖图标、按钮、更新通知及等待通知关闭等,底层协议已扩展以支持这些特性。
Wayland 改进 [v0.34]
Wayland 用户体验显著提升:
- 支持 GPU 加速绘制桌面面板和背景,可运行任意终端程序作为壁纸(例如 btop)。
- 在 KDE 中通过特定协议支持透明窗口背景模糊。
- 在 GNOME 中,Kitty 窗口装饰完全可用,并自动跟随系统的深色/浅色模式。
- 支持 Wayland 分数缩放。
此次发布后,Kitty 的 Wayland 支持与 X11 保持一致。
详细变更日志
2026 年 11 月 3 日更新
- 允许将小窗口对接到其他窗口或标签边缘(如状态栏、文件树)。使用
--type=window-dock或--type=tab-dock创建。 - 退出、重启或关机时保存每个 Kitty 实例的状态(含滚动位置),下次启动时恢复。macOS 上使用钥匙串加密,Linux 上需要 Inhibit 桌面门户 (#1197, #10659)。
- 支持将标签用作命名工作区:新增
--focus-existing启动选项以聚焦现有窗口/标签;新增标题值--location以保持标签字母顺序;新增detach_window动作可将窗口发送至命名标签(必要时创建)(#10627)。 - Wayland:在 GNOME 等合成器上使用的客户端窗口装饰现呈现为原生风格,遵循桌面标题字体、文本缩放、按钮布局和标题点击动作设置 (#10766)。
- 支持触摸屏:触摸视为点击,单指滑动为带惯性的滚动,手指静止前长按可选择文本 (#5432, #10551)。
- 自定义着色器:新增
cursor-trail-railgun、cursor-trail-torpedo和cursor-trail-pixiedust着色器,模仿 neovide 风格让粒子随光标移动飞散。着色器现可通过按键控制(shader_event动作),支持淡入淡出、反转和循环(animation_*指令),并可定义pointer_map()函数以确保点击和选择落在鼠标下方的文本上(crt着色器已采用此功能)。修复了长时间运行后动画卡顿、按路径指定着色器未找到及管道 bug (#10587, #10667, #10693, #10595, #10694, #10639)。 - 图形协议:新增两种索引颜色图像格式,其像素指向终端调色板索引,使图像颜色随配色方案变化。允许客户端通过新的
e查询键检测对单个协议功能(如动画和 Unicode 占位符)的支持 (#9379, #10732)。 - 支持程序状态协议 (OSC 7501),允许程序报告工作状态(工作中、完成、失败或等待用户)。状态通过
tab.program_status字段显示在标签栏中 (#10724)。 - 自动颜色主题:当系统在浅色/深色模式间切换时,保留由程序、
ssh kitten、launch --color或launch --copy-colors设置的颜色;程序恢复保存的颜色时使用当前主题色。launch --color设置的颜色在配置重载后依然有效。ssh kitten可通过kitten-ssh.color_scheme_dark、kitten-ssh.color_scheme_light和kitten-ssh.color_scheme_no_preference为远程主机在不同模式下使用不同配色方案。 - 布局:对齐相邻窗口的边框并保持间隙均匀;新增
collapse_window_margins选项,使相邻窗口的边距相互折叠而非累加 (#10508)。 - 窗口调整大小:Splits 布局中新增
--strategy=edge模式,可选择并移动特定的内部分割线;按住修饰键配合调整字母可按比例分配剩余调整步数,可通过--fraction配置。 - 根据字体大小缩放框线图字符、光标和窗口标题栏边框的厚度,防止放大时过细或缩小时过粗。在配置的
font_size下外观不变 (#10362)。 mouse_map现可映射滚轮(wheel_up,wheel_down,wheel_left,wheel_right),例如用于调整字体大小。- 新增
hyperlink_target_position选项,控制show_hyperlink_targets显示的 URL 位置,包括作为鼠标旁的浏览器风格工具提示 (#10770)。 - 仅在按下符合配置的单击打开链接的修饰键时,才在链接上显示手型指针和悬停高亮,并在修饰键按下或释放时立即更新。
- Quick Access Terminal Kitten:新增
--if-running、--listen-on和--hold选项,以便在已运行的快速访问终端中执行程序、使用固定的远程控制套接字或在程序退出后保持终端开启 (#10603)。 - 会话:新增
os_window_position关键字和--os-window-geometry选项,用于在会话文件中保存操作系统窗口的大小、位置和状态。修复有时忽略 OS 窗口大小和os_window_title的问题 (#10675)。 - 命令面板:当搜索查询为空时,在顶部显示动作和 Kitten 别名,便于固定常用动作 (#10711)。
- 垂直标签栏:当设置
tab_title_max_length时,标签栏大小适应当前tab_bar_style的装饰,允许更窄的标签栏 (#10680)。 - Linux/BSD:使用 shared-mime-info 缓存检测开放动作和 Kitten 的 MIME 类型,匹配桌面其余部分的行为,包括无扩展名文件(如
Makefile)和 MIME 类型别名 (#3056)。 - IME:保持候选窗口锚定在预编辑文本起始处和光标处,避免输入时跳动。在 macOS 上,当操作系统窗口失去焦点时,提交正在进行的 IME 或听写文本而非丢弃 (#10642, #10644)。
- Shell 集成:使 Kitty terminfo 文件在通过
run0执行的命令中可用,类似于sudo(#10692)。 kitty --config=NONE现在也会跳过自动颜色主题文件、open-actions.conf、launch-actions.conf、mime.types、paste-actions.py、notifications.py以及 Kitty 配置目录中的自定义窗口图标。- Kitty 插入的包装进程(如 macOS 上的
或launch --hold的包装器)在报告窗口 PID、工作目录、命令行和环境变量时被跳过,且在匹配窗口时也被忽略。修复launch --cwd=root在 shell 运行命令时使用前台进程而非根进程的工作目录的问题。 - Nightly 构建在
kitty --version和kitten --version输出中显示构建日期和提交哈希。 - 不在渲染帧之间进行渲染,以减少那些使用许多小型部分更新绘制的程序的闪烁 (#10749)。
- 性能:加快 GPU 精灵缓存的增长(特别是在 macOS 上),在非零
input_delay时降低 CPU 使用率,并在存在选区且窗口向后滚动时停止持续重新渲染 (#10714)。 - 远程控制:修复精心构造的请求可能伪装成异步请求取消从而绕过基于密码的身份验证的问题。
- 远程控制:修复许多命令(包括
action,send-key,set-colors,set-background-opacity,set-font-size,ls,run和set-enabled-layouts)忽略选项、报告虚假成功或静默错误解释无效输入的问题,特别是在remote_control映射中使用时候。set-colors现在以与kitty.conf相同的方式解析颜色文件。还修复了一个无响应的对端阻塞所有远程控制通信以及在使用损坏图像配合set-window-logo或set-background-image时崩溃的问题 (#10672, #10632, #10688, #10690, #10715)。 - 修复各种终端仿真 bug,包括原点模式光标位置报告、擦除多单元格字符、CHT 转义代码以及复制包含制表符的文本、宽字符在与缩放文本碰撞后绘制在错误行等问题。





