シェル拡張機能Qt Wayland Compositor

Waylandでは、シェルは サーフェスセマンティクスを提供する拡張機能です。つまり、サーバとクライアントがサーフェスについて通信する方法を提供するものです。この文脈では、サーフェスはしばしば "ウィンドウ "とも呼ばれ、一般的にはコンポジターにおけるサーフェスの表現です。

シェルエクステンションは、クライアントとサーバーが特定の事柄について通信するためのツールを提供します:

  • クライアントがサーバーにサーフェスの目的を知らせる方法を提供できます:例えば、それはツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。例えば、ツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。これに基づいて、サーバーはウィンドウのジオメトリや、ユーザーがウィンドウとどのようにインタラクションできるかを決定することができる。
  • また、サイズ変更、移動、非表示など、サーフェスを操作するためのプロトコルを提供することもできる。

他の拡張と同様に、シェルのサポートは、WaylandCompositor トップレベルオブジェクトの直接の子としてインスタンス化することでコンポジターに追加されます。Qt でサポートされているシェル拡張は次のとおりです:WlShell XdgShellIviApplication です。

  • XdgShell はデスクトップスタイルのシステムに適したシェルで、いくつものアプリケーションが接続でき、ウィンドウのサイズや位置をユーザーが手動で変更できます。
  • IviApplication は最小限のプロトコルで、もともとはIn-Vehicle Infotainmentシステム向けだった。このプロトコルは、あらかじめ定義されたアプリケーション・セットを実行することができ、多くの場合、あらかじめ割り当てられた画面領域で実行される組み込みシステムに便利です。このプロトコルの詳細については、IVI Compositor の例を参照してください。
  • QtShell は Qt アプリケーションに特化したシェルで、Qt で利用可能なウィンドウ管理機能をサポートしています。コンポジターとクライアントアプリケーションの両方がQtで書かれており、アプリケーションが手動ウィンドウ位置決めや "bring-to-front "のような機能を悪用しないと信頼されているプラットフォームに適しているかもしれません。
  • WlShell は、サードパーティ製アプリケーションとの互換性のために有用です。これもデスクトップスタイルのシェルですが、非推奨となり、 に取って代わられました。XdgShell

組み込みシステムをボトムアップで設計する場合、どのシェル拡張を使うかを決めるルールはあ りません。XdgShell IviApplicationシステムがどのような機能を必要とするか、Qt で書かれていないアプリケーションや独自の要件を持つアプリケーションがあるかどうかによって決定されるべきです。

Qt Wayland Compositor は一度に複数のシェル拡張をサポートすることもできます。上に挙げた3つのシェル拡張がすべてサポートされている例については、Minimal QMLの例を参照してください。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.