Request denied when using qubes-video-companion (qvc.ScreenShare)

How did you guys get it to work? When i typed the command

qubes-video-companion screenshare [name of appVM]

I get

Request refused

And a notification saying

Denied qvc.ScreenShare from AppVm to AppVM

Where are you executing the command @PostedPortal?

The notification indicates that an RPC policy prevented AppVM’s request to use qvc.ScreenShare in AppVM.

If my understanding of how the video companion setup works is correct (it may not be!) I would expect a message saying that AppVM was allowed / denied the use of qvc.ScreenShare in dom0.

Might it be that you’re executing the command in AppVM while it should be executed in dom0?

Again: take my guess with a grain of salt (it’s only a guess), and verify it makes sense before running anything in dom0 that shouldn’t be.

Im executing in my appVM.

The documentation specifies to execute the command qubes-video-companion screenshare in the virtual machine of the screen sharing recipient.

If I wanted to share my screen from AppVM 2, I would execute this in AppVM1?

The documentation uses ‘recipient’ and ‘target’ terms. In the above scenario what would my target be AppVM2 and recipient appvm1?

I generally dont know what im doing. Should I have my webcam turned on and attached to the Target or the recipient?

I tried qubes-video-companion screenshare in dom0 and it gave the result /usr/bin/qubes-video-companion: line 60: qrexec-client-vm: command not found

1 Like

Yes.

AppVM2.

1 Like

Since the original topic was solved, I moved the question to a new topic with its own title to make it more visible to people susceptible of having experienced a similar error or doubts when they started using qubes-video-companion.

1 Like

appreciate it. Hope to getting this solved soon :smile:

is there anything i should be doing with my webcam? I think its attached to sys-usb. Do i attach it to target or recepient or leave it unattached?

Make sure you have qubes-video-companion-dom0 installed in dom0 to install the qrexec policies.

execute this in dom0 correct?

sudo qubes-dom0-update qubes-video-companion

qubes-video-companion install the program itself. qubes-video-companion-dom0 install the policies instead. So you need to use this command in dom0:

sudo qubes-dom0-update qubes-video-companion-dom0

Thanks! sudo qubes-dom0-update qubes-video-companion-dom0 Seemed to have solved initiating the screen share. Consider having it added to GitHub - QubesOS/qubes-video-companion

When i execute the command qubes-video-companion screenshare AppVM-target in the terminal for appvm-recipient, it asks which VM to set as target so i set AppVM-target.

I opened cheese on appVM-target but i dont see anything. Again, im completely new with this. Idk what im doing or what to expect.

Also, appvm-recepient is showing this in terminal after i connect my screenshare.

(screenshare.py:2987): Gdk-CRITICAL **: 15:48:44.770: gdk_atom_intern: assertion ‘atom_name != NULL’ failed

(screenshare.py:2987): Gdk-CRITICAL **: 15:48:44.771: 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:2987): Gdk-CRITICAL **: 15:48:44.986: gdk_window_thaw_toplevel_updates: assertion ‘window->update_and_descendants_freeze_count > 0’ failed

You need to open cheese where you started the command because that’s where the video will be sent.
So if the command was started in AppVM-recipient, you need to open cheese there as well.

ohh. okay. I switched up my target and recipient vms. I have run the command in the same vm with cheese open but terminal is saying the companion is already running. Whats the command to shut it off?

You should have a tray icon in your system tray, click on it and tell it to stop. If you have nothing, try deleting this file:

sudo rm /run/lock/qubes-video-companion
2 Likes

It worked! This is truly amazing! Thank you all so much :smile:

1 Like

One last thing here…

I was able to share myscreen over a jitsi meet but it had to be done through the cheese app lol. Clicking on share screen on jitsi didnt give an option to share dom0.

Dom0 is my target. AppVM with Jitsi is the receiver and both have the video companion installed.

IIRC, jitsi limits the quality of cameras due to performance issues. You should be able to start it by appending #config.resolution=1080 to the end of the meet URL to enable the camera.