Except: Both Firefox and Chrome suffer from the same issue when trying to screenshare from a multi-head setup on Linux. They do not have the XRandR integration that allows you to choose an individual monitor, despite having the same functionality on other operating systems.
This is such a shame, but it pretty much discounts the entire landscape of web-based collaboration sites with screen sharing support.
When I want to show something, I can either:
So, I use OBS (which actually has third-party support for
wlroots if you're on Wayland) and stream to my own RTMP server.
nginx-rtmp lets anyone stream to any endpoint by default. With a tiny Flask application and a bit of configuration, we get that out of the way.
Secondly, latency: RTMP is not designed for a low-latency environment like screen-share collaboration. Plus, its roots are pretty shaky - Macromedia's Flash-to-server video streaming is not really what we want.
Finally, convenience: To watch my screen, viewers have to open a video client, and point it at my RTMP URL. This is way more friction than just looking at the chat application that's already open. Plus, most RTMP players have built-in delay, so we resort to weird
ffplay -nobuffer commands to get the latency down. This is really terrible ergonomics.
I have a few ideas to make the situation better:
This is a plea to chat platforms and browser developers to improve the situation on Linux.