Shell-Erweiterungen – Qt Wayland Compositor
In Wayland sind Shells Erweiterungen, die Oberflächen-Semantik bereitstellen. Das bedeutet, dass sie Möglichkeiten bieten, wie Server und Client über Oberflächen kommunizieren können. Oberflächen werden in diesem Zusammenhang oft auch als „Fenster“ bezeichnet, was typischerweise die Darstellung der Oberfläche im Compositor ist.
Shell-Erweiterungen stellen Werkzeuge bereit, mit denen Client und Server über bestimmte Aspekte kommunizieren können:
- Sie können dem Client eine Möglichkeit bieten, den Server über den Zweck einer Oberfläche zu informieren: Handelt es sich beispielsweise um einen Tooltip, ein Popup-Menü oder ein reguläres Anwendungsfenster? Auf dieser Grundlage kann der Server die Geometrie des Fensters festlegen und bestimmen, wie der Benutzer damit interagieren kann.
- Sie können zudem Protokolle zur Bearbeitung der Oberfläche bereitstellen, beispielsweise zum Ändern der Größe, Verschieben und Ausblenden.
Wie bei anderen Erweiterungen wird die Unterstützung für Shells in einen Compositor integriert, indem sie als direkte Unterelemente des Top-Level-Objekts „ WaylandCompositor “ instanziiert werden. Die von Qt unterstützten Shell-Erweiterungen sind:
- XdgShell ist eine geeignete Shell für Systeme im Desktop-Stil, bei denen sich beliebig viele Anwendungen verbinden können und bei denen Fenster vom Benutzer manuell in der Größe angepasst und neu positioniert werden können.
- IviApplication ist ein minimalistisches Protokoll, das ursprünglich für In-Vehicle-Infotainment-Systeme (IVI) gedacht war. Es eignet sich für eingebettete Systeme, auf denen eine vordefinierte Reihe von Anwendungen ausgeführt werden kann, oft mit vorab zugewiesenen Bildschirmbereichen. Weitere Details zu diesem Protokoll finden Sie im Beispiel „IVI Compositor“.
- QtShell ist eine spezialisierte Shell für Qt-Anwendungen, die die in Qt verfügbaren Funktionen zur Fensterverwaltung unterstützt. Sie eignet sich möglicherweise für eine Plattform, auf der sowohl der Compositor als auch die Client-Anwendungen mit Qt geschrieben sind und bei der davon ausgegangen werden kann, dass Anwendungen Funktionen wie die manuelle Fensterpositionierung und „In den Vordergrund bringen“ nicht missbrauchen.
- WlShell ist vor allem für die Kompatibilität mit Anwendungen von Drittanbietern nützlich. Auch hierbei handelt es sich um eine Shell im Desktop-Stil, die jedoch veraltet ist und durch XdgShell ersetzt wurde.
Bei der Entwicklung eines eingebetteten Systems von Grund auf gibt es keine festen Regeln, welche Shell-Erweiterung verwendet werden soll. In der Regel kommt entweder XdgShell oder IviApplication zum Einsatz. Die Entscheidung sollte davon abhängen, welche Funktionen das System benötigt und ob Anwendungen beteiligt sind, die nicht in Qt geschrieben sind und eigene Anforderungen haben.
Eine „ Qt Wayland Compositor “ kann auch mehrere Shell-Erweiterungen gleichzeitig unterstützen. Im Beispiel „Minimal QML“ finden Sie ein Beispiel, bei dem alle drei oben aufgeführten Shell-Erweiterungen unterstützt werden.
© 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.