{ id: wlcompositor WaylandOutput { compositor: wlcompositor window: Window { width: 1024; height: 768; visible: true Rectangle { id: surfaceArea anchors.fill: parent } } } Component { id: chromeComponent ShellSurfaceItem { onSurfaceDestroyed: destroy() } } WlShell { onWlShellSurfaceCreated: chromeComponent.createObject(surfaceArea, { "shellSurface": shellSurface } ); } } Minimal example