kitty 0.50 让终端长出侧边栏:窗口能停靠,登出也不丢会话

摘要

kitty 0.50 把停靠窗口做进终端:侧边栏、文件树能钉在窗口或标签页边缘且不参与平铺重排;登出或重启后连回滚内容一起恢复,Wayland 触摸屏也补上了。

推荐
软件名称
kitty
版本
0.50
收费
免费
开源
开源
操作系统
LinuxmacOS
更新时间
2026-11-10 20:25

kitty 是 Kovid Goyal 维护的一款 GPU 加速终端模拟器软件,用 OpenGL 画字,能跑在 Linux、macOS 和部分 BSD 发行版上,许可证是 GPL-3.0。它一贯的做法是把活都自己干:分屏、标签页、会话文件、图片显示协议、能被脚本调用的远程控制,全在终端内部解决,不指望外面再挂一层窗口管理器。2026 年 11 月 3 日,kitty 发到 0.50.0。

先把窗口钉到边上

想在终端里凑出一个像样的开发界面,绕不开侧边栏和状态栏。过去的做法是分屏,把文件树、日志、跑测试的小窗口全塞进同一套平铺的格子里。麻烦在于这套格子是整体重算的:主区域一变宽,边上的栏位跟着变形,宽度被挤到只剩几个字符。

kitty 0.50 加的停靠窗口换了思路。停靠窗口被放在平铺区域之外,只贴着宿主窗口或整个标签页的某一条边,不参与平铺计算。用 launch --type=window-dock 创建窗口级停靠,launch --type=tab-dock 创建标签页级停靠,--dock-edge 指定贴哪条边,--dock-size 定它占多少宽度。

两者的生命周期不一样。窗口级停靠跟着宿主窗口走,宿主挪到别的标签页它也跟着挪,宿主被关掉它一起关;标签页级停靠会一直撑到那个标签页里最后一个常规窗口关闭为止。停靠关系还能写进会话文件,下一次开会话,栏位仍在原来的位置。

kitty terminal with multiple panes
kitty 的多面板终端界面,左侧目录、右侧提交记录与克隆进度并排显示

登出以后还接得上

0.50 新加了一个开关 restore_session_after_logout。打开它,kitty 会在你登出、重启、关机的时候,把每个实例的 OS 窗口、标签页、窗口连同回滚内容一起存下来,下次启动原样铺回去。macOS 上存下的状态用钥匙串里的密钥加密;Linux 上要靠桌面门户的 Inhibit 接口,才赶得上在系统收摊之前把状态写进磁盘。

会话文件本身也扩了字段。新增的 os_window_position 可以记录操作系统窗口的位置,save_as_session 多了 --os-window-geometry 选项,窗口的尺寸、位置、状态都能一起存。以前能恢复的是窗口内部的排布,现在连窗口摆在哪块屏幕上都能还原。

标签页朝工作区靠了一步

这块的改动是三处小口子。launch --focus-existing 会切到已经存在的窗口或标签页,而不是再开一个副本;launch --location 多了 by-title 取值,标签按标题字母序排;detach-window 命令和 detach_window 动作可以指定把窗口送到某个具名标签页,那个标签页不存在就顺手建出来。三处合起来,标签页从多开几个 shell 变成了可以按项目命名、来回投送窗口的格子。

标签栏上能看到程序在忙什么

0.50 实现了 Program Status Protocol,走 OSC 7501 这条转义序列。程序可以主动上报自己处在 working、finished、failed 还是 blocked 状态,kitty 这边只要在 tab_title_template 里取 tab.program_status,状态就直接显示在标签栏上。跑编译或者长任务时不必一个个窗口点开看,扫一眼标签就知道哪一格卡在等输入。

光标后面拖一串粒子

自定义着色器是 0.49 铺的路,0.50 在上面加了三个光标轨迹效果:cursor-trail-railgun、cursor-trail-torpedo 和 cursor-trail-pixiedust。开启光标轨迹之后,光标一跳,身后散出一串粒子。着色器现在还能由按键触发,管这事的是新增的 shader_event 动作;着色器里也可以定义 pointer_map(),把点击和选区落到屏幕上实际显示的那个字符上,而不是落到移位后的坐标。

terminal window split layout
分屏排布里各窗口用不同颜色的边框区分,停靠窗口不进这套重排

图会跟着配色变

图形协议加了两种索引色图像格式,像素值存的是终端调色板的索引,不是写死的颜色。换配色方案的时候,图里的颜色跟着调色板走,不必重新生成一张图。

terminal color themes browser
主题浏览器里切换配色,索引色图像会随之改色

Wayland 上能用手戳了

Wayland 这条线补得比较密。0.50 加了触摸屏支持,轻点当点击,手指移动带惯性滚动,按住不动再拖能选中文字。GNOME 这类合成器上的客户端窗口装饰改成仿原生样式,跟随桌面的标题栏字体、文本缩放、按钮位置和点击行为。输入法的候选窗口也固定到预编辑文本的起点,打字时不再跟着跳。

零碎但每天会碰到的改动

新选项 collapse_window_margins 让相邻窗口的外边距合并而不是叠加,边框对齐之后间距终于均匀。mouse_map 现在能映射滚轮,上下左右四个方向各算一个按钮,像按住 Ctrl 滚轮改字号这种映射可以直接写进配置。方框线字符、光标和标题栏边框的粗细改成跟着字号缩放,把字放大时不至于细成一根线。

修掉的那些地方

0.50 堵了一个安全漏洞:构造过的请求可以伪装成异步请求的取消,从而绕过远程控制的密码认证。远程控制那批命令的解析也重写了,action、send-key、set-colors、ls、run 这些以前会忽略选项、误报成功或者把非法输入静默吞掉,现在按规矩报错,单个没响应的对端也不会再把整条通道堵死。内存安全上修了配置重载时的堆缓冲区溢出、越界写和释放后使用。

性能方面,GPU 的精灵缓存涨得慢了,input_delay 不为零时 CPU 占用也更低。另外顺手修了粗斜体图标被无关字体渲染、ssh kitten 复制目录丢权限、拖放把目录挪进自己子目录这类会真丢数据的毛病。

装在哪台机器上

kitty 覆盖 Linux、macOS 与部分 BSD,Windows 不在原生支持之列,要在 WSL2 里跑 Linux 那一份。项目由 Kovid Goyal 一个人主导,更新节奏一直很密,0.49 是 9 月 21 日,0.50 隔了一个多月就到。

0.50 的意义不在那几个着色器,而在停靠窗口把"排布"和"常驻栏位"拆成了两件事。终端真要做成工作区,就得允许有些窗口不受重排摆布。至于登出后原样恢复,则是把这件事从一次会话里延伸到开机关机之间。
kitty下载地址
支持的操作系统: Linux macOS