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

Screen Sharing Blank Screen #5313

Closed
1 task done
zamadatix opened this issue Jun 4, 2021 · 7 comments
Closed
1 task done

Screen Sharing Blank Screen #5313

zamadatix opened this issue Jun 4, 2021 · 7 comments

Comments

@zamadatix
Copy link

  • I have searched open and closed issues for duplicates

Bug Description

Screen sharing works inbound but output both the local preview window and the remote user do not see the window or screen being shared.

Platform Info

Signal Version: 5.4.0
Operating System: Windows 10 20H1 x64

Link to Debug Log

https://debuglogs.org/a225e4f2bec629ada2bd877fad42fcb03dd0252d0ed67f022c7c7038231448da.gz

@EvanHahn-Signal
Copy link
Contributor

Sorry you're running into this, and thanks for including your debug log.

My theory is that you don't have a webcam on your computer, or that your laptop is closed and we can't get to the webcam. Is that right?

@zamadatix
Copy link
Author

Thanks for the quick response. I can confirm there was no webcam attached to the computer, temporarily plugging one in results in screen sharing working.

@nkr0
Copy link

nkr0 commented Jun 5, 2021

Blank screen on wayland systems that use pipewire 0.3.x (Debian Bullseye/Ubuntu Groovy onwards) as well. Before chromium 91, support was only for pipewire 0.2.x. And electron 13 is the first one to package chromium 91.

@vchernin
Copy link

vchernin commented Jun 6, 2021

@nkr0 PipeWire 0.3.x systems are able to screen share with apps that use PipeWire 0.2.x, for example Jitsi Meet Electron is currently on Electron 12, and you can pass --enable-features=WebRTCPipeWireCapturer at runtime to get Wayland screen sharing working (that flag will not be needed in the next Jitsi update).

@EvanHahn-Signal Screen sharing on Linux X11 works, however Linux Wayland does not currently work. Virtually all Linux distros which default to Wayland (Fedora, Ubuntu 21.04, Debian 10, etc) also include PipeWire. PipeWire enables things like screen sharing on Wayland, and upstream Chromium includes support for it.

On Signal on Linux Wayland (official .DEB packages, Ubuntu 21.04), the share button is there, but once you've selected a window and clicked share it won't actually work. That behaviour is expected given Signal does not try and enable PipeWire support out of the box.

If Signal is using standard WebRTC users should be able to pass --enable-features=WebRTCPipeWireCapturer at runtime or Signal could add that flag to main.js. Note you also need rtc_use_pipewire=true and use_sysroot=true enabled in Signal's Electron builds (upstream enables them by default).

Unfortunately, currently in Signal if you pass that flag the screen sharing button simply doesn't do anything which seems to be an issue on Signal's part. That button needs to be fixed for Linux Wayland screen sharing to work.

Please note native Wayland support is not necessary for screen sharing via PipeWire to work, Signal can be running in xwayland (not native wayland) and PipeWire screen sharing still works.

However, when Signal is running in xwayland mode it will only be able to share other xwayland clients and not the whole screen. When Signal is running native Wayland mode via signal-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland Signal would only be able to share other native Wayland clients and the full screen. There is basically nothing Signal can do about this, this is an intentional Wayland design limitation.

Edit: I think the above paragraph was incorrectly describing a desktop environment-specific bug as a Wayland-specific bug, see here for a better explanation for Firefox. I commented it out as I'm not sure how accurate it is, and I don't want to say something I'm not 100% sure of. Whatever the case is, PipeWire should still be implemented as described in the rest of my comment.

If you'd like I could make a seperate bug report for Linux Wayland screen sharing.

@zamadatix
Copy link
Author

Resolved in v5.5.0

@maximbaz
Copy link

@vchernin now that this is closed, would you please create a separate bug for Linux Wayland screen sharing using PipeWire?

@vchernin
Copy link

@maximbaz #5350

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants