gst-wayland-display
| Version | 2026.241.2200 |
| Repo | box/github.com/opencharly/layer-gst-wayland-display:v2026.241.2202 |
Builds and installs the gst-wayland-display GStreamer plugin —
libgstwaylanddisplaysrc.so, the waylanddisplaysrc element that IS the
Wayland parent for a nested compositor. The element embeds a Smithay
compositor, creates zwp_linux_dmabuf_v1 on a real DRM render node, and
produces GStreamer buffers straight out of the compositor — which is what
lets a nested Hyprland run with no seat, no KMS device and no DRM master.
Built from the opencharly fork at a pinned commit rather than from crates.io:
the fork carries the resize sentinel fix (an unset max_size intersected to
None, so a resize silently snapped to 1280x720), the xkb-layout/variant/
options element properties, and smooth-scroll axis support. Upstream has
none of these.
The source is fetched at an immutable commit tarball, built with cargo, and only the resulting .so is installed — the build tree is removed in the same step. Every claim below is checkable in a disposable build-scope container: the plugin file exists, GStreamer loads it, the element is registered, and the three keymap properties the streamer sets are present.
Packages
Section titled “Packages”Installed on every distro:
rustgstreamergst-plugins-basegst-plugin-vawaylandlibinputlibxkbcommonmesaclangpkgconfcurl
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
run |
fetch the pinned gst-wayland-display fork tarball |
run |
build the plugin and install only the .so, then drop the build tree |
check |
the gst-wayland-display plugin file is installed |
check |
GStreamer loads the plugin and registers the waylanddisplaysrc element |
check |
the fork’s keymap properties are present — the streamer sets all three |
check |
a waylanddisplaysrc pipeline negotiates DMABuf into vapostproc and reaches PLAYING |
check |
the render-node property is present — the element never uses a software node |