Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FR] Breezy GNOME multi-monitor support #51

Open
wheaney opened this issue Aug 26, 2024 · 2 comments
Open

[FR] Breezy GNOME multi-monitor support #51

wheaney opened this issue Aug 26, 2024 · 2 comments

Comments

@wheaney
Copy link
Owner

wheaney commented Aug 26, 2024

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.
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
@wheaney
Copy link
Owner Author

wheaney commented Aug 26, 2024

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 wheaney changed the title Breezy GNOME multi-monitor support [FR] Breezy GNOME multi-monitor support Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner deleted a comment Aug 26, 2024
Repository owner locked as spam and limited conversation to collaborators Aug 26, 2024
@wheaney
Copy link
Owner Author

wheaney commented Aug 26, 2024

Locked due to spam

Repository owner unlocked this conversation Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant