Kwi亮相:KDE全新GPU加速终端模拟器正式发布

Mark Do · · 54 次阅读 · linux桌面

Kwi亮相:KDE全新GPU加速终端模拟器正式发布

什么是Kwi?

我正在开发一款全新的KDE应用程序——Kwi(发音同”快”)。

Kwi专为KDE Plasma用户及各类自由桌面环境打造,旨在提供一款现代化且高效的终端工具。它基于稳健的技术栈构建,并遵循最新的KDE人机交互指南(HIG)及UI设计规范。

以下是界面截图:

 

Kwi基本界面截图

 

从某种意义上说,Kwi的产品愿景恰恰是”平平无奇”——它就是你所期待的那种KDE Plasma终端该有的样子。当然,考虑到KDE软件一贯以强大著称的口碑,这个项目在野心上绝不含糊。

Kwi的技术底座来自优秀的Ghostty项目的libghostty-vt,同时整合了KDE社区熟悉的成熟框架,如KPty。渲染引擎方面,Kwi借助Qt Scene Graph实现了极速的GPU加速渲染(支持Vulkan或OpenGL)。界面则采用最新的Kirigami框架构建,使其能够完美融入较新的KDE应用及Plasma桌面生态。

与命名理念呼应,Kwi的图标是一只可爱的迷你终端幽灵。这也正是其名字的由来:kwisin(或更常见的gwisin)是韩语귀신的罗马化拼写,意为”幽灵”,发音近似kwee-shin。

Kwi的独特优势

与历史悠久、功能成熟的Konsole相比,Kwi尚处于起步阶段。目前它的功能集更为精简,但每一个细节都经过精心设计,严格遵循KDE最新的人机交互规范。未来的发展路径将稳步扩展,充分借鉴KDE社区在过去十年积累的设计流程经验(向VDG团队致敬!)。同时,这也是一次调研市场、学习其他终端如何实现近期创新的好机会,并为KDE打造更具竞争力的解决方案。

Konsole深度绑定于Qt较为老旧的UI技术栈——QWidget。QWidget通常依赖CPU渲染,Konsole也不例外。而新一代KDE软件(包括Plasma本身)则普遍采用Qt Quick,通过Vulkan或OpenGL实现GPU加速,Kwi正是这一路线的践行者。对于部分终端应用场景,性能提升极为显著(根据测试基准不同,速度可达Konsole的3倍至35倍),这对用户体验来说是质变。此外,整体能效表现也有望进一步降低电池消耗。

Kwi建立在libghostty-vt之上,该项目定位为生态级基础库——提供一个无头模式的库来处理棘手的终端解析与状态管理,赋能下游项目,实现”水涨船高”的目标。最近这一承诺正逐步兑现,其在现代TUI特性支持方面已超越其他终端实现方案,且不独占优质特性。该库预计在未来4到6个月内推出第一个稳定版本(v1.0),目前已开始被Neovim、Ghostel等众多热门项目采用。详见这份列表。

Kwi将该库与KDE/Qt技术栈深度融合,使项目能够聚焦于桌面集成与渲染性能这两大KDE生态的强项。两者结合已在多个方面带来优于Konsole的体验,具体包括:

  • 通用层面
    • 全面升级至最新KDE人机交互指南(HIG)
    • 整体性能提升3倍至35倍(因测试基准而异)
      • 例如,在测试平台上运行DOOM-fire-zig,Kwi达870 fps,而Konsole仅23 fps
  • 渲染能力
    • Vulkan或OpenGL GPU加速渲染
    • 更完善的KDE Plasma系统配色方案支持(含实时切换)
    • 改进了Wayland分数缩放的支持
    • 终端文字渲染优化
      • 优化文字装饰渲染(如复杂下划线的正确排序)
      • 改善连字与颜色高亮、文本选择的协同表现
      • 支持mode-2027字素宽度、Nerd Font图标缩放等功能
      • 改进Powerline及几何符号的渲染
      • 支持Unicode占位图像
  • TUI应用特性、桌面集成增强
    • 终端无障碍访问能力大幅提升
      • 屏幕阅读器文本提取能力显著增强
      • 鼠标检测、点击查询等无障碍支持更完善
      • 无障碍工具操作终端功能更加便捷
    • 支持CSI 996/mode 2031配色方案查询与动态更新
    • 现代TUI协议支持更完整
      • Kitty图像协议支持更全面、速度更快
        • 支持相对于父元素的图像定位
      • 支持Kitty动画协议
      • 支持Kitty鼠标光标形状协议
      • 支持Kitty/OSC 5522及OSC 1337剪贴板协议
      • OSC 9;4进度协议支持更完整,含错误状态与不确定状态等
      • 改进的Kitty键盘协议支持
  • 架构层面
    • 支持嵌入Qt Quick/Kirigami应用
    • 更精细的线程架构,同步提升性能
    • 针对容器化运行(如Flatpak)额外优化

当然,细节远超上述列举。

为何打造Kwi——架构视角

为什么要做这个项目?首要原因当然是上述显著的性能优势!但背后还有更深层的考量。

目前KDE开发者生态中存在一个空白:Konsole因深度绑定老旧的QWidget技术栈,提供了一套可嵌入组件,被Dolphin、Kate、Yakuake等QWidget型KDE应用广泛使用(Kwi项目为这些应用提供了直接替换方案)。然而,它无法为基于Qt Quick/Kirigami开发的KDE应用提供类似能力。这成为推动KDE应用迁移至新技术栈的阻碍之一,同时也让新建的Qt Quick/Kirigami应用缺乏一个成熟的KDE终端组件可选。

Kwi的解决方式是安装一个公开的Qt Quick/QML模块,供其他KDE应用导入使用,彻底填补这一空白。

与此相关的一个架构亮点是:任何使用过Konsole KPart组件的开发人员(我曾多年负责KDE 4版本的Yakuake开发与维护)都知道,Konsole主程序本身并非自身KPart的消费者。这导致Konsole与其他UI(如Yakuake)之间存在行为差异与某些奇怪的限制,也是Konsole设置界面复杂且选项分布看似随意的根本原因之一。


关注微信号:智享开源 ,及时了解更新信息。

阅读原文

Mark Do

关注我的头条 不要放弃,百折不挠,坚强、自信。

评论列表 共 1 条

发表评论