breezy-desktop icon indicating copy to clipboard operation
breezy-desktop copied to clipboard

[FR] Breezy GNOME multi-monitor support

Open wheaney opened this issue 1 year ago • 2 comments

Here is my tentative plan for supporting this:

  1. Put an Add another virtual monitor button in the UI that triggers a script like this RecordVirtual implementation. This approach is a bit of a hack because RecordVirtual is intended for remotely streaming video capture of the virtual display, but it's really the only way through any GNOME API I could find to create a virtual display. In practice I don't want to have it continue streaming (esp since the user may want to have a bunch of these open), so I was able to work around this in my own experimentation by setting the Gst state to PAUSED in on_pipewire_stream_added after letting it start. This Gstreamer pipeline's width/height is how you set the resolution of the virtual display.
  2. MonitorManager's getMonitorConfig function would need to be updated to call GetCurrentStateRemote instead of (or maybe in addition to) GetResourcesRemote, as that will allow us to find logical_monitors that are associated with MetaMonitor monitors. Any such monitors would want to be rendered by the XR effect.
  3. We would need to update how the extension's _find_supported_monitor logic works and what information is stored, or store information about all such monitors found.
  4. Update how this overlay is created such that it uses coordinates that cover all virtual displays. The XR effect is applies across that whole overlay, so if the overlay is properly positioned, anything underneath it is rendered without having to update the effect logic at all. This gives us less flexibility in terms of how the monitors are allowed to be placed (e.g. we wouldn't want people positioning their "real" monitor in the space that would need to be covered by this overlay), but the alternative is a much larger rewrite that allows us to place multiple overlays and somehow piece them all into an effect that manages multiple monitor placements and multiple desktop textures.

wheaney avatar Aug 26 '24 03:08 wheaney

we wouldn't want people positioning their "real" monitor in the space that would need to be covered by this overlay

Or maybe for the sake of simplicity we would, and if people have a physical display that they want rendered in the XR effect, they can do that.

wheaney avatar Aug 26 '24 03:08 wheaney

Locked due to spam

wheaney avatar Aug 26 '24 04:08 wheaney