The Kwi logo and application icon
出典: blogs.kde.org

KDE向けの新しい端末エミュレーター「Kwi」

KDE開発者のEike Hein氏が、新しい端末エミュレーター「Kwi」の開発を始めました。KDEの既存端末Konsoleに代わる選択肢を目指していますが、現時点では実験段階で、Konsoleを置き換えるかは決まっていません。

Kwiは、KDE Plasmaやほかのフリーなデスクトップ環境で使う端末として開発されています。ユーザーインターフェースにはKDEの新しいアプリで使われるKirigamiを採用し、KDEのヒューマンインターフェースガイドライン(HIG)に沿って設計しています。

開発者によると、現状の機能はKonsoleより絞り込まれています。Konsoleは29年にわたって開発され、日々多くの人に使われている一方、Kwiは少人数で限定的なテストを行っている段階で、バージョン0.1.0のタグもまだ付いていません。

GPU描画と端末処理を分担する構成

KwiはGhosttyプロジェクトの「libghostty-vt」と、KDE Frameworksの「KPty」などを組み合わせています。描画にはQt Scene Graphを使い、VulkanまたはOpenGLによるGPUアクセラレーションに対応します。

libghostty-vtは、端末制御シーケンスの解析や端末状態の管理、入力イベントの符号化など、端末エミュレーターの中核処理を担うCライブラリーです。スクロールバックや行の折り返し、ウィンドウサイズ変更時の再配置も扱います。

Ghostty本体は、端末機能に加えてウィンドウや設定画面などを備えた端末アプリケーションです。libghostty-vtはそこから端末処理を切り出したライブラリーで、KwiはKDEの技術基盤や描画方式と組み合わせています。

ベンチマークで示された性能差

Kwiの開発者は、ベンチマークでKonsoleより全体性能が3〜35倍高いと説明しています。測定内容によって結果は異なり、DOOM-fire-zigではテスト環境でKwiが毎秒870フレーム、Konsoleが毎秒23フレームでした。

DOOM-fire-zigは、端末上に炎のアニメーションを描き続けるストレステストです。このベンチマーク手法では、約14秒の実行を5回行い、各回の平均フレームレートを記録します。

この値は、連続して出力される文字や色を端末が処理し、描画する性能を比較する材料です。ベンチマークの記録によると、結果は端末サイズや環境負荷に左右されます。また、描画テストのフレームレートは、日常的な端末操作全般の速さをそのまま表すものではありません。

Konsoleとの連携や今後の構想

Kwiは、Qt QuickやKirigamiを使うアプリに組み込める公開QMLモジュールを提供します。Konsoleの組み込み部品は従来のQt Widgetsを使うアプリ向けです。新しい技術基盤を採用したアプリで使える同様の端末部品が不足していることが、開発の背景にあります。

Kwiアプリ自体も同じQMLモジュールを使います。そのため、組み込み先のアプリとKwi本体で設定を共通化でき、Konsoleの色設定ファイルもすでに利用できます。

開発者は将来の構想として、KDEの技術基盤を使ったKmscon代替の実験にも触れています。これはまだ着手されていません。また、Konsoleの部品を組み込むアプリ側の変更を、利用者の希望にどう結びつけるかは、KwiからKonsoleへの移行に向けた課題として残っています。