
kitty 0.50 发布:新增窗口停靠、会话恢复与自定义着色器
来源标题:Kitty 0.50
GPU 终端 kitty 发布 0.50 版,新增窗口停靠功能,可将窗口停靠到其他窗口或标签页边缘,适用于状态栏、文件树等场景。该版本还支持注销或关机时保存状态并在下次启动时恢复,包括滚动缓冲。此外,kitty 正式支持自定义着色器,可实现动态背景、焦点高亮等视觉效果。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Kitty 0.50
kitty 是一款功能丰富、跨平台、快速、基于 GPU 的终端。 要更新 kitty,请按照说明操作。 kitty 窗口现在可以停靠到另一个窗口或标签页的边缘。停靠窗口放置在布局之外,非常适合状态栏、文件树或紧挨编辑器的 shell。附着在窗口上的停靠会跟随该窗口移动,随之切换到其他标签页,并在窗口关闭时一同关闭。使用 launch --type=window-dock 或 launch --type=tab-dock 创建停靠。停靠也会保存在会话中。 与其他应用程序一样,kitty 现在可以在你注销、重启或关闭计算机时保存其状态,并在下次启动时恢复。只需设置 restore_session_after_logout,每个 kitty 实例都会带着其所有操作系统窗口、标签页和窗口(包括它们的滚动回看缓冲区)恢复原状。在 macOS 上,保存的状态使用存储在钥匙串中的密钥加密。详情请参阅注销后恢复 kitty。 kitty 现在正式支持自定义着色器。这些着色器可用于各种图形效果,从动画背景到焦点高亮,再到改变光标移动或鼠标点击可视化方式的动画。请参阅文档中的视频画廊,其中展示了 kitty 自带的各种自定义着色器。 此版本进行了大量性能优化工作,专注于提升吞吐量,使 kitty 比以往更快。根据工作负载的不同,实际有效吞吐量应能提升 15-35%。一些细节: 通过在实际写入滚动回看内存之前进行预取,当处理大量文本且滚动回看缓冲区远大于 CPU 缓存时,吞吐量提升约 35% 通过将连续的纯 ASCII 字符批量写入屏幕,并在滚动和标签页处理的热路径中跳过不必要的簿记工作,处理大量文本时 ASCII 吞吐量提升约 50%,Unicode 提升约 15% 加速 SIMD UTF-8 解码:在 x86 和 ARM 上,ASCII 速度提升约 20%,多字节文本速度提升约 50%,方法是每次处理两对纯 ASCII 文本向量,并在 128 位通道内压缩解码后的码点,避免昂贵的跨通道操作。此外还添加了基于 AVX-512 的解码器,多字节文本速度再提升约 75%,在支持该指令集的 CPU(Intel Ice Lake+、AMD Zen 4+)上自动使用。 通过每缓冲区输入只获取一次输入缓冲区锁(而非每个转义码获取一次),并使用更廉价的算术解析 CSI 参数,处理转义码密集输入的吞吐量提升约 30% 通过使用 SIMD 查找可打印 ASCII 字符的连续段,使用宽存储填充单元格,并在没有图像时跳过滚动热路径中的不必要工作,处理大量纯文本的吞吐量再提升约 10% 通过 SIMD 向量化加速像素合成:图形协议图像和动画帧的 alpha 混合速度提升 2-3.5 倍,字形 alpha 掩码使用相同的向量化原语合成到画布上。 缓存 HarfBuzz 对重复短文本段(≤32 个单元格)的结果,使同一屏幕文本的重绘不再重新进行字形整形 kitty 现在支持在操作系统窗口的左边缘或右边缘显示垂直标签页。这对使用宽高比窗口的用户很有用。 kitty 现在有一个新的拖放 kitten,允许你在 kitty 与任何 GUI 程序(如操作系统文件管理器或 Web 应用)之间无缝拖放文件。它甚至可以通过 SSH 工作!它由一种新协议驱动,允许任何 TUI 程序使用拖放功能。 kitty 已经拥有出色的鼠标支持,但现在更上一层楼。kitty 滚动回看缓冲区新增了对平滑滚动和基于动量的滚动的支持,带来自然、流畅且富有动感的滚动体验。 此外,你现在可以用鼠标拖动 kitty 标签页来重新排序、将它们移动到另一个 kitty 操作系统窗口,甚至将它们分离到独立的操作系统窗口中。 最后,一个长期被请求的功能——用鼠标调整 kitty 窗口(即分屏)大小的能力——已经实现。 一个新的 kitten,用于以键盘优先的界面以思维的速度选择文件,并支持文本文件的内容预览(带语法高亮)、图像、视频、电子书等。允许你只需几次击键即可在 shell 提示符或其他终端工作流中选择文件,类似于 fzf 等模糊查找器的操作方式,但专为文件设计,利用了 kitty 的各种创新,如图像显示和可变大小文本。 在 Linux 上,它甚至可以作为 GUI 程序中文件打开/保存对话框的直接替代品。 kitty 长期以来一直支持会话,即简单的文本文件,你可以在其中定义希望在 kitty 中运行的标签页、窗口和程序。现在,除此之外,kitty 还能通过单次按键创建和切换会话,也可以手动在 kitty 中设置一些标签页/窗口并将其保存为会话文件,实现无缝直观的会话文件创建。 一个长期被请求的功能,kitty 终于有了可用于鼠标浏览其滚动回看缓冲区的滚动条。当你开始向后滚动时,滚动条会自动出现,并且可以在 kitty.conf 中进行广泛配置。注意,旧的 scrollback_indicator_opacity 选项已弃用。 kitty 开创了一种新的转义码协议,允许终端应用程序使用多个原生渲染的光标。这些通常用于编辑器中,以便在多个位置进行相同的编辑。现在,基于终端的编辑器终于可以像它们的 GUI 同类一样使用正确渲染的原生光标了。 kitty 现在有一个类似 Quake 的浮动半透明终端窗口,因此你可以通过单次按键即时访问 kitty 的所有优点。请参阅侧面的截图,并前往 kitten 页面了解如何设置的详情。 kitty 是第一个引入多尺寸概念的主要终端
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。