
什么是Kwi?
我正在开发一款全新的KDE应用程序——Kwi(发音同”快”)。
Kwi专为KDE Plasma用户及各类自由桌面环境打造,旨在提供一款现代化且高效的终端工具。它基于稳健的技术栈构建,并遵循最新的KDE人机交互指南(HIG)及UI设计规范。
以下是界面截图:

从某种意义上说,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键盘协议支持
- 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设置界面复杂且选项分布看似随意的根本原因之一。
关注微信号:智享开源 ,及时了解更新信息。
网站新主题启用测试😂