kledgeb UbuntuやLinuxの最新情報を紹介

Linux その275 - ウィンドウの装飾エンジンと Aurorae V2 の開発

ウィンドウの装飾エンジンと Aurorae V2 の開発

Aurorae V2 の開発が以下で紹介されています。


  • What’s next for Aurorae?

ウィンドウの装飾エンジン

ウィンドウの装飾エンジンは、文字通りウィンドウの装飾を描画するソフトウェアです。
装飾エンジンは実装や装飾テーマに基づいて、ウィンドウの装飾を描画します。
今回紹介している Aurorae は、KDE 環境向けの装飾エンジンです。

KDE Plasma には装飾エンジンを実装するための KDecoration ライブラリーがあります。
KDecoration ライブラリーは C++ で実装されており、KDE Plasma のデフォルトの Breeze や今回紹介している Aurorae は、いずれも KDecoration ライブラリーを利用して実装されています。

Breeze と Aurorae の違い

Breeze は Breeze スタイルに準拠した装飾を描画する装飾エンジンです。
Aurorae は装飾テーマに従って装飾を描画する装飾エンジンです。
そのため Aurorae は Breeze と異なり、サードパーティーが装飾テーマを作成することで、広範にウィンドウの装飾をカスタマイズできます。

  • Aurorae window decorations


ちなみにサードパーティーが作成した装飾テーマは、以下からダウンロード可能です。

  • KDE Store | Plasma 6 Window Decorations
  • KDE Store | Plasma Window Decorations

Aurorae の特徴

もう少し Aurorae の特徴を掘り下げてみましょう。
Aurorae は QML と SVG ベースのテーマをサポートしています。

QML テーマを使用する場合、ウィンドウの装飾の外観と動作を定義する QML コードを記述します。
QML テーマは数行のコードで外観や動作を変更でき、優れたデザインを容易に実現できます。

その一方で SVG テーマを使用する場合、ウィンドウのフレームと各種ボタンの外観を指定する SVG ファイルをそれぞれに複数用意する必要があります。
SVG テーマは実際には QML テーマとして構築されています。

Aurorae の課題

Aurorae は10年以上も前に登場した装飾エンジンですが、近年はあまり活発に開発されていません。

例えば UI の流行りとして丸みを帯びたデザインがありますが、Aurorae に UI のトレンドに追従するような新機能の実装は行われていません。
またパフォーマンスも Breeze と比較すると、Aurorae のパフォーマンスはひどく劣っています。

加えて QML テーマで作動する QML は動作コストが高く、パフォーマンスに影響を与えます。
また QtQuick の仕組み上、適切な分数スケーリングのサポートが非常に困難です。
これは QtQuick を使用する通常のアプリケーションではほぼ問題ありませんが、Aurorae のユースケースでは、個々のピクセルがどこに描画されるかを完全に制御する必要があるため、このような課題が発生します。

Aurorae V2

前置きが長くなりましたが、本題の Aurorae V2 です。
端的に言えば、Aurorae の作り直しです。

パフォーマンスの改善

上記の課題でも挙げたように Aurorae にはパフォーマンスの課題があります。
Aurorae V2 ではパフォーマンスを改善し、KWin がウィンドウをリサイズしても問題が起きないようにします。

ちなみにパフォーマンスの課題は QtQuick にパフォーマンス上の問題があるということではなく、QML デコレーションのレンダリング方法に原因があります。

現在のレンダリング方法は、QtQuick シーンをオフスクリーンテクスチャーでレンダリングし、そのコンテンツをダウンロードした後、別のテクスチャーにそのコンテンツをアップロードする処理になっています。
この処理の繰り返しによりパフォーマンスが低下しますが、KDecoration API の制約上、この一連の処理は必要な処理になっています。

分数スケーリングのサポートに向けた改善

次に Aurorae V2 では分数スケーリングのサポートに向けた改善が取り組まれます。
ウィンドウの境界線のズレや装飾とウィンドウのコンテンツ間の隙間を修正するなど、分数スケーリングのサポートに向けた道を切り開くことが目的です。

テーマのカスタマイズを容易に

サードパーティーがトレンドやモダンさを反映したテーマを作成できるように、より多くのツールを提供できるよう、将来に向けた基盤を構築していきます。

すでに作業は進んでいる

すでに Aurorae V2 の開発作業は進められています。

パフォーマンスの改善

Aurorae V2 では直接 KDecoration と KSvg API を利用して構築されています。
これにより Aurorae の装飾処理は非常に軽量になり、パフォーマンスが大幅に向上しました。

分数スケーリング

一部の分数スケーリングの問題は既に修正されていますが、まだ改善な作業が残っています。

CPU によるレンダリングと GPU によるレンダリング

ウィンドウの装飾は CPU でレンダリングされます。
すべてを GPU で処理できれば理想的ですが、現時点で CPU によるレンダリングは大きなボトルネックになっていません。
将来的に GPU によるレンダリングを活用する可能性もありますが、現時点では優先度は高くありません。

QML テーマ と SVG テーマ

QML テーマ自身がそれほど多く存在していないため、QML テーマは従来の Aurorae V1 を利用してもらうことになります。
ただし Aurorae V1 の将来性に関しては不透明です。

SVG テーマでは Aurorae V2 を利用することになります。
ちなみに Aurorae V1 と Aurorae V2 は共存できます。

今後の取り組み

今後も継続して Aurorae V2 の完成に向け開発及び改良作業が続きます。

Aurorae V3

さらに次の Aurorae V3 の開発も検討されています。
Aurorae V3 ではテーマの制限の解消や、ウィンドウ下部の角やアウトラインを丸めるといった新機能のサポートが予定されています。

Linux
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 22.04 その95 - ディスプレイサーバーを切り替えるには・XorgとWayland
    ディスプレイサーバーを切り替えるには 「Ubuntu」はデフォルトで2種類のディスプレイサーバーを提供しています。
  • Linux その309 - This Week in Plasma の貢献者の募集と投稿頻度の抑制
    This Week in Plasma の貢献者の募集と投稿頻度の低下 KDE で This Week in Plasma の貢献者が募集されています。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
  • Ubuntu 26.04 その5 - デイリービルドのディスクイメージが利用可能に・ディスクイメージのダウンロード
    デイリービルドのディスクイメージ Ubuntu 26.04 LTS のデイリービルドのディスクイメージが利用できるようになりました。
  • Ubuntu 26.04 その9 - Ubuntu Desktop 26.04 LTS の開発方針・プリインストールアプリの変更やソフトウェア管理の一元化など
    Ubuntu Desktop 26.04 LTS の開発方針 2025年11月26日、Ubuntu Desktop 26.04 LTS の開発方針がアナウンスされました。
  • Ubuntu 22.04 その98 - 入力ソースとキーボートレイアウトと日本語入力のカスタマイズ
    入力ソースとキーボートレイアウトと日本語入力 「Ubuntu」ではユーザーが利用しているキーボードレイアウトや日本語入力のカスタマイズが可能です。
  • Ubuntuのバージョンと開発コードの対応表
    UbuntuのバージョンとUbuntuの開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • Ubuntu nano その5 - 文字列を検索する
    文字列を検索する(Where Is)   文字列の検索は、部分一致と正規表現による検索が可能です。 検索の開始始点   現在カーソルのある位置から検索を行います。   もし、テキストの最後まで検索して文字が見つからない場合、   nanoはテキストの先頭から検索...
記事のピックアップ
オプション