Running a current wlroots-based compositor (Hyprland, and by extension sway/labwc) as an [[application]], e.g. to get a full remote desktop over the stream rather than a single game, crashes immediately on startup:
wl_display#1: error 0: Invalid binding of wl_compositor version 6 for global 1.
terminate called after throwing an instance of 'std::runtime_error'
what(): CBackend::create() failed!
Hyprland has crashed :(
(SIGABRT + coredump; the moonshine session then reports unit ... state="failed".)
I think this is because Moonshine's compositor advertises the wl_compositor global at a version below 6. wlroots >=0.18 (via aquamarine) binds wl_compositor at version 6 and treats a failed bind as fatal, so every current wlroots compositor fails to initialize its Wayland backend when nested in Moonshine.
Moonshine vendors smithay 0.7.0 (the hgaiser/smithay master-moonshine fork), so the advertised wl_compositor version is controlled here. smithay should support bumping the advertised wl_compositor global to version 6.
Repro:
[[application]]
title = "Desktop"
command = ["Hyprland"]
Running a current wlroots-based compositor (Hyprland, and by extension sway/labwc) as an
[[application]], e.g. to get a full remote desktop over the stream rather than a single game, crashes immediately on startup:(SIGABRT + coredump; the moonshine session then reports
unit ... state="failed".)I think this is because Moonshine's compositor advertises the
wl_compositorglobal at a version below 6. wlroots >=0.18 (via aquamarine) bindswl_compositorat version 6 and treats a failed bind as fatal, so every current wlroots compositor fails to initialize its Wayland backend when nested in Moonshine.Moonshine vendors
smithay0.7.0 (thehgaiser/smithay master-moonshinefork), so the advertisedwl_compositorversion is controlled here. smithay should support bumping the advertisedwl_compositorglobal to version 6.Repro: