シェル拡張機能 -Qt Wayland Compositor
Wayland において、シェルはサーフェスのセマンティクスを提供する 拡張機能です。つまり、サーバーとクライアントがサーフェスについて通信するための手段を提供します。この文脈におけるサーフェスは、しばしば「ウィンドウ」とも呼ばれ、通常はコンポジターにおけるサーフェスの表現を指します。
シェル拡張機能は、クライアントとサーバーが特定の事項について通信するためのツールを提供します:
- クライアントがサーフェスの目的(例えば、ツールチップ、ポップアップメニュー、あるいは通常のアプリケーションウィンドウなど)をサーバーに通知する手段を提供できます。これに基づいて、サーバーはウィンドウのジオメトリや、ユーザーがウィンドウとどのように操作できるかを決定できます。
- また、サーフェスのサイズ変更、移動、非表示などの操作を行うためのプロトコルも提供できます。
他の拡張機能と同様に、シェルのサポートは、WaylandCompositor のトップレベルオブジェクトの直接の子としてインスタンス化することで、コンポジターに追加されます。Qtがサポートするシェル拡張機能は以下の通りです:
- XdgShell は、任意の数のアプリケーションが接続可能であり、ユーザーが手動でウィンドウのサイズ変更や位置変更を行えるデスクトップスタイルのシステムに適したシェルです。
- IviApplication は、もともとIn-Vehicle Infotainment(IVI)システム向けに設計された、最小限のプロトコルです。これは、あらかじめ定義された一連のアプリケーションが、多くの場合、あらかじめ割り当てられた画面領域で実行される組み込みシステムに有用です。このプロトコルに関する詳細については、IVI コンポジターの例を参照してください。
- QtShell は、Qtで利用可能なウィンドウ管理機能をサポートする、Qtアプリケーション専用のシェルです。コンポジターとクライアントアプリケーションの両方がQtで記述されており、手動によるウィンドウの位置調整や「最前面表示」などの機能が不正に使用されないことが保証されているプラットフォームに適しています。
- WlShell は、主にサードパーティ製アプリケーションとの互換性のために有用です。これもデスクトップスタイルのシェルですが、現在は非推奨となっており、XdgShell に置き換えられています。
組み込みシステムをゼロから設計する場合、どのシェル拡張機能を使用すべきかを決定する決まりはありません。通常は、XdgShell またはIviApplication のいずれかになります。決定にあたっては、システムに必要な機能や、Qt で記述されていないアプリケーションが関与しているかどうか、またそれらのアプリケーションに独自の要件があるかどうかに基づいて判断すべきです。
Qt Wayland Compositor は、複数のシェル拡張機能を同時にサポートすることも可能です。上記で挙げた3つのシェル拡張機能すべてがサポートされている例については、「Minimal QML」の例を参照してください。
© 2026 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.