While video- streaming (Google Meet, e.g.), how to share the "screen" of a different qube or perhaps hvm?

Hello All,
The case is as follows:
While using a service like Google Meet, e.g. hosted in “untrusted”- qube I would like to share with the participants:

  1. The “view” of another qube,
  2. The “view” of Dom0 + some qube(s) opened there,
  3. The “view” for an hvm.
    Is it possible to be done in Qubes OS, and how?
    So far, I am able to share a tab from the same browser or a tab, detached from the recent browser in the same qube, and moved to different screen (with the “share screen #”- option).
    Thanks,
    Mara

This is what you are looking for:

Package to install in both qubes: qubes-video-companion
Package to install in dom0: qubes-video-companion-dom0

Then you can use qubes-video-companion screenshare in the qube that will share the content to others, and select the sending qube (the one that will appear in the meeting) in the dom0 validation window.

This method uses a virtual camera, so you must use it in your meeting instead of screen sharing.

As for HVMs, they need qrexec to work with this. So if you have a classic system without any Qubes package installed, it won’t work.

1 Like

Thank you @DVM.
I have followed the tutorial:

# run the following commands in Dom0 :
sudo qubes-dom0-update qubes-video-companion
# opened “work”- Firefox- qube, started video- meeting, and in “work”- Terminal:
sudo dnf install qubes-video-companion
#opened “untrusted”- qube- Terminal (I want all participants in the GMeeting to be able to see it), and:
sudo apt update && sudo apt install qubes-video-companion # and then:
qubes-video-companion screenshare
# ERROR : Request refused, and
# in a pop-up window:
# Denied: qvc.ScreenShare
# Denied qvc.ScreenShare from untrusted to @default

P.S.
I have found the problem from above:
When I execute:

sudo qubes-dom0-update qubes-video-companion

I receive the following error:

Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time…
Unable to detect release version (use ‘–releasever’ to specify release version)
Fedora 37 - x86_64 671 kB/s | 70 MB 01:46
Fedora 37 - x86_64 - Updates 722 kB/s | 43 MB 01:01
Qubes Host Repository (updates) 237 kB/s | 4.5 MB 00:19
Last metadata expiration check: 0:00:15 ago on Sat Mar 2 12:43:28 2024.
No match for argument: qubes-video-companion
Error: Unable to find a match: qubes-video-companion

Please, help to resolve.

Thanks,

Mara

The package for dom0 is not the same, it has -dom0 at the end:

Thank you @DVM!
I found more:
The command provided in the GitHub is incorrect for Qubes OS -

sudo qubes-video-companion

instead, one must use (as @DVM has mentioned into the thread):

sudo qubes-video-companion-dom0
(screenshare.py:4938): Gdk-CRITICAL **: 08:40:28.777: gdk_atom_intern: assertion ‘atom_name != NULL’ failed
(screenshare.py:4938): Gdk-CRITICAL **: 08:40:28.778: gdk_atom_intern: assertion ‘atom_name != NULL’ failed
/usr/share/qubes-video-companion/sender/screenshare.py:38: DeprecationWarning: Gdk.Screen.width is deprecated
“crop_r”: screen.width() - monitor.x - monitor.width,
/usr/share/qubes-video-companion/sender/screenshare.py:39: DeprecationWarning: Gdk.Screen.height is deprecated
“crop_b”: screen.height() - monitor.y - monitor.height,
Receiving video stream at 1920x1080 30 FPS…
(screenshare.py:4938): Gdk-CRITICAL **: 08:40:29.871: gdk_window_thaw_toplevel_updates: assertion ‘window->update_and_descendants_freeze_count > 0’ failed

Once, I execute qubes-video-companion screenshare in the qube that will share the content to others, I see appearing on the right top of my main screen the Qubes Video Companion’s icon, and screenshare: work ==> untrusted right beneath it.
When I try to choose from the list of possible options in the broadcasting browser, I see additionally screenshare.py appeared. When I choose it, it shows only a computer-looking-icon.

the update still doesn’t work (receiving the above error- message - “unable to detect release version …” ):

sudo qubes-dom0-update

The minor version of Fedora I have is 38, and I already set up all to 39, and I do not use it actually - all of my Qubes are based on Bookworm …

Please, help to resolve, possibly both issues.

Thanks,

Mara

You won’t see it in the screen sharing list:

For example, if you’re using Firefox, you’ll need to reload the tab to enable camera access, otherwise it won’t detect it.

In this setup, work send its desktop to untrusted. This means that you will be able to use the virtual camera inside untrusted and not work. If you want to share untrusted to work, you need to run qubes-video-companion screenshare in work instead.

Thank you @DVM!
Now I got it.
So the order, in order this to work would be :wink:

# run the following commands in Dom0 :
sudo qubes-dom0-update qubes-video-companion-dom0
# open the Terminal from the Qube you will get the streaming (GMeet, e.g.) from (in my case “work”),
sudo apt update && sudo apt install qubes-video-companion
# open the Terminal from the Qube you will share information from (in my case “untrusted”),
sudo apt update && sudo apt install qubes-video-companion
# If you do not execute this command in a Template, you would need to execute it every time you restart a Qube, as usual …
#Open the Browser, where the video- streaming/conference will take place
# in the Terminal from the Qube you will get the streaming (GMeet, e.g.) from (in my case “work”), execute:
qubes-video-companion screenshare
# a pop-up asking for the target will appear (in my case “untrusted”).
# Once chosen the Qubes Video Companion will appear at the top right of your main Qubes OS windows.
#In the Browser, where the video- streaming/conference will take place, start the event - You will be prompted to allow Virtual Sound and Qubes Video Companion (if not, try with reloading the Tab).
# Then you choose the Application’s mean to “Share a Video\Tab\etc.”, and you will be provided with a “White Square” where you would need to “drag” opened Apps from the relevant Qube (in my case - “untrusted”). Indeed, this is the screen active at the moment. I was able to “drag” two opened App- Qubes and share them.
Thanks, and Best,
Mara

1 Like

@deeplow, I am not able to “mark” the Resolution - the icon is missing.
Can you help out, please?
thanks,
Mara

I changed the category to User Support, you should be able to mark it as solved now.

1 Like

are there any plans to improve on this? Screen sharing using cheese is a bit strange to non qubes users. I think screensharing is important for adopting users migrating from macos or windows