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

Zoom Screen Sharing Causes White Screen to Cover Display #5863

Closed
ElliotKillick opened this issue May 29, 2020 · 21 comments
Closed

Zoom Screen Sharing Causes White Screen to Cover Display #5863

ElliotKillick opened this issue May 29, 2020 · 21 comments
Labels
affects-4.1 This issue affects Qubes OS 4.1. C: gui-virtualization diagnosed Technical diagnosis has been performed (see issue comments). eol-4.1 Closed because Qubes 4.1 has reached end-of-life (EOL) P: default Priority: default. Default priority for new issues, to be replaced given sufficient information.

Comments

@ElliotKillick
Copy link

ElliotKillick commented May 29, 2020

Qubes OS version
R4.0

Affected component(s) or functionality
Qubes GUI agent, vm side

Brief summary
Screen sharing in Zoom works from the perspective of the meeting participants; but on your side, all you see is a big white screen spanning the entire display. This prevents interaction with the windows and if played around with for a bit, locks up. At which point, my only remedy was to logon to a new tty to kill the zoom process inside the affected qube.

To Reproduce

  1. Install Zoom on fedora-31 AppVM from: https://zoom.us/client/latest/zoom_x86_64.rpm
  2. Install Zoom on another device (e.g. phone)
  3. Join a meeting together
  4. Enable screen sharing on fedora-31 AppVM

Expected behavior
Screen sharing from Zoom should capture everything inside the AppVM without whiting out the screen from its perspective.

Actual behavior
Screen is completely white on the side of the screen sharing AppVM.

Additional context
Given the current times, pandemic and all, this is of fairly high importance.

Solutions you've tried
I ran ps aux | grep qubes-gui to see if I had manual composition mode enabled as described in: marmarek/qubes-gui-agent-linux@3187ffb
I did not have a -c switch.

Related, non-duplicate issues
#4351

@ElliotKillick ElliotKillick added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug labels May 29, 2020
@ElliotKillick
Copy link
Author

Screen capture does still work though, for example, if I use flameshot to take a screenshot. Just more evidence that this is different from #4351.

@GWeck
Copy link

GWeck commented Jun 1, 2020

I had the same behaviour when I used Zoom from an AppVM running under ubuntu 1804 (bionic beaver). Running Zoom from an AppVM running under Windows 7 with QWT 4.0.1.3 allowed, however, to share the screen from the perspective of the VM - no whiting of the screen.

So this seems to be a problem of a generic Linux driver, since it occurs with Fedora and Debian based systems, but not with Windows. Windows, however, lacks the audio driver, and, at least for me, did not succeed in connecting an USB webcam.

@v6ak
Copy link

v6ak commented Jun 2, 2020

In my opinion, this is caused by some transparent overlay that is there for annotating the screen content. Since Qubes OS does not support transparency, the overlay is white.

Workarounds:

a. Use Zoom from a web browser.
b. Hide the overlay by xdotool selectwindow windowunmap.

If the reason is the transparent layer, I am not sure how Qubes OS can reasonably fix it in a generic way. Of course, Qubes OS might blacklist the overlay.

@GWeck
Copy link

GWeck commented Jun 3, 2020

The layer seems to be inactive. xdotool selectwindow returns a window ID, but commands like windowunmap, windowkill or windowsize have no effect on the white overlay, although they work on other windows.

@v6ak
Copy link

v6ak commented Jun 3, 2020 via email

@GWeck
Copy link

GWeck commented Jun 4, 2020

I ran it from the AppVM. Now I tried from dom0, and it is working. Thanks a lot!!!

@ElliotKillick
Copy link
Author

Thanks @v6ak, worked like a charm for me too! I found that the name of the annotating window is cpt_frame_window (cpt stands for "capture" I presume) meaning that it can be closed a bit easier using the following command after starting Zoom screen sharing:

xdotool windowunmap "$(xdotool search --name cpt_frame_window)"

Probably just add a small sleep before so you click start screen sharing and then, once the white screen pops up, have this command run.

I suppose the real solution would be to add support for transparent windows. Should still be secure as long as it has the coloured window border around it. Being able to use the annotation feature in Zoom would be nice.

For the time being, a suitable workaround for getting annotation is to use flameshot. It nicely sits in the system tray and can be clicked on whenever you need annotating.

@v6ak
Copy link

v6ak commented Jun 8, 2020 via email

@marmarek
Copy link
Member

marmarek commented Jun 8, 2020

Transparent windows are tricky security-wise, because it makes hard to tell what is part of such window. Imagine full screen transparent window from some red qube, that renders a green password prompt inside - it may be really hard to notice it really belongs to the fullscreen transparent window.
I have some ideas for heuristics to make it slightly less risky (for example allow only over windows belonging to the same qube), but they all are still risky, and can be also tricky to implement in a way not breaking expected application behavior.

@ElliotKillick
Copy link
Author

Perhaps there should be a setting to allow transparency on a qube by qube basis like there is for fullscreen mode in /etc/qubes/guid.conf. That, plus the coloured window border, along with some aforementioned heuristics should make for a reasonable solution.

This case is particularly tough because the window covers the full screen, is transparent, and has to receive mouse and keyboard input (for annotation with drawing, text boxes, etc.).

Also, I should note that the flameshot solution only allows you to annotate but of course any annotations participants make are invisible to you.

@andrewdavidwong andrewdavidwong added the diagnosed Technical diagnosis has been performed (see issue comments). label Jun 9, 2020
@GWeck
Copy link

GWeck commented Jun 9, 2020

The transparent window shown in Zoom screen sharing seems to be a "feature" of the Zoom product. I tested the GotoMeeting videao conference software now, and it allows screen sharing without this transparent window, probably because it may be lacking the possibility to annotate etc.

@ehanoc
Copy link

ehanoc commented Jun 18, 2020

@ElliotKillick, @GWeck, @v6ak, @marmarek

You can almost fix this issue completely by changing the line in ~/.config/zoomus.conf

[AS]
showframewindow=true

change to

[AS]
showframewindow=false

Now, after fixing this, you will be able to screen share and function. Although, the toolbar and the zoom menus are still blank. From what i gather it has to do with the display composite options for xfce4. I still haven't figured that one out though ...

Hope it helps folks

@heinrich-ulbricht
Copy link

heinrich-ulbricht commented Jul 2, 2020

@ehanoc If by "toolbar" you mean the top center bar showing the session ID and meeting controls - this is working fine for me, the bar is showing and can be used. Seems like the perfect solution for me. (Using the latest zoom-client from the snap store on Fedora 31.)

@ehanoc
Copy link

ehanoc commented Jul 2, 2020

@ehanoc If by "toolbar" you mean the top center bar showing the session ID and meeting controls - this is working fine for me, the bar is showing and can be used. Seems like the perfect solution for me. (Using the latest zoom-client from the snap store on Fedora 31.)

No, i mean the top one during screen sharing.

It regular bottom-toolbar, does works normally

@GWeck
Copy link

GWeck commented Jul 3, 2020

For me, the file is ~/snap/zoom-client/current/.config/zoomus.conf.

Screen sharing shows all windows under control of the VM, without their borders. This makes sense, as the colour of the borders makes sense only within Qubes, not for another meeting participant who joined the meeting from a different computer. The rest of the shared screen is white, as is to be expected, because the VM is not allowed to see other portions of the screen.

@ehanoc
Copy link

ehanoc commented Jul 6, 2020

For me, the file is ~/snap/zoom-client/current/.config/zoomus.conf.

Screen sharing shows all windows under control of the VM, without their borders. This makes sense, as the colour of the borders makes sense only within Qubes, not for another meeting participant who joined the meeting from a different computer. The rest of the shared screen is white, as is to be expected, because the VM is not allowed to see other portions of the screen.

No, the toolbar im referring is the one you have only when sharing on the top of the screen. And that is blanked out. Nothing to do with the colours of the window of the VM.

@ioleo
Copy link

ioleo commented Jan 7, 2021

Had the same issue. Using latest Zoom Version 5.4.7 (57450.1220) and Fedora-30 VM.
The trick to get it working was to:

  • go to Zoom -> Settings -> Share Screen
  • untick (turn off) Show green border around the shared content box

@timdiels
Copy link

Another workaround, that applies more generally for applications that need GPU-like capabilities, is to run it in TurboVNC. It's not a full replacement for a GPU but for simple things that try to draw on screen, it's usually sufficient. (I have had problems with Zoom screen sharing not showing anything; I don't recall whether it was a white screen but it sounds like the same issue I had). It's more work to set up than the above trick, e.g. have to run another desktop environment, but once set up you can use it for Zoom, Teams, websites which want webgl sometimes works too, ...

@DemiMarie
Copy link

Another workaround, that applies more generally for applications that need GPU-like capabilities, is to run it in TurboVNC. It's not a full replacement for a GPU but for simple things that try to draw on screen, it's usually sufficient. (I have had problems with Zoom screen sharing not showing anything; I don't recall whether it was a white screen but it sounds like the same issue I had). It's more work to set up than the above trick, e.g. have to run another desktop environment, but once set up you can use it for Zoom, Teams, websites which want webgl sometimes works too, ...

You can also use Xephyr for the same trick I think.

@andrewdavidwong
Copy link
Member

Is this still a problem in 4.1?

@andrewdavidwong andrewdavidwong added the affects-4.1 This issue affects Qubes OS 4.1. label Aug 8, 2023
@andrewdavidwong andrewdavidwong removed this from the Release 4.1 updates milestone Aug 13, 2023
@andrewdavidwong andrewdavidwong added the eol-4.1 Closed because Qubes 4.1 has reached end-of-life (EOL) label Dec 7, 2024
Copy link

github-actions bot commented Dec 7, 2024

This issue is being closed because:

If anyone believes that this issue should be reopened, please leave a comment saying so.
(For example, if a bug still affects Qubes OS 4.2, then the comment "Affects 4.2" will suffice.)

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Dec 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-4.1 This issue affects Qubes OS 4.1. C: gui-virtualization diagnosed Technical diagnosis has been performed (see issue comments). eol-4.1 Closed because Qubes 4.1 has reached end-of-life (EOL) P: default Priority: default. Default priority for new issues, to be replaced given sufficient information.
Projects
None yet
Development

No branches or pull requests

10 participants