Skip to content

Draft: headless backend: Allow resizing of virtual monitors

salmanmlk requested to merge salmanmlk/mutter:resize_virtual_monitors into main

This change allows resizing of the virtual monitors in response to pipewire stream resolution param renegotiation.

The workflow looks as following:

  • PipeWire client connected to the screencast stream, renegotiates the stream resolution params.
  • Since virtual monitor pipewire streams are now configured to allow a stream size of min/max between (1, 1) and (16384, 16386), the pipewire stream negotiation succeeds (similar to record_virtual implementation).
  • The monitor mode params are updated within mutter and mode is updated on the corresponding virtual monitor.
  • Meta monitor manager is used to reload the monitors.
  • When a mismatch in the stream size and the newly updated logical monitor is observed, this change updates the stream size to match the logical monitor rather than closing/destroying the stream.
Edited by salmanmlk

Merge request reports