Support isolated live window ScreenCast streams

Render selected toplevels through a private portal-only capture protocol, preserve logical snapshot geometry, and renegotiate PipeWire video on window resizing. Bound outstanding snapshots and retry temporary contention; stop on source closure and session locking.

Validation: portal unit tests (31), capture budget unit, private-bus portal contracts, and real nested/PipeWire isolation, workspace, resize, close and paused-lock tests pass. Independent review cleared. Monitor restore integration timed out on both this build and the unchanged previous compositor under the current nested host.
This commit is contained in:
Samuel Onoja committed 2026-09-30 04:02:33 +01:00
1 parent 56a888adb3
commit baca852ee9
26 files changed
+1307 -139

No files matched your search

+3 -2
View File
@@ -7,8 +7,8 @@ rust-version.workspace = true
[features]
default = ["client", "server"]
client = ["dep:wayland-client"]
server = ["dep:wayland-server"]
client = ["dep:wayland-client", "wayland-protocols-wlr/client"]
server = ["dep:wayland-server", "wayland-protocols-wlr/server"]
[dependencies]
bitflags.workspace = true
@@ -16,3 +16,4 @@ wayland-backend.workspace = true
wayland-client = { workspace = true, optional = true }
wayland-scanner.workspace = true
wayland-server = { workspace = true, optional = true }
wayland-protocols-wlr.workspace = true