I’m new to Qubes and excited to try it out soon, but I’m curious about how videoconferences (Jitsi, Zoom, Teams, Meet, etc.) work in Qubes.
Based on some of the other posts I’ve read on here, it seems as simple as attaching a webcam and mic (which I assume normally live in sys-usb) to an AppVM or DispVM set up with the software I want to use. I have two questions:
How would screen-sharing work? Zoom and others let you share a single application’s window; could I screen-share other applications if they’re in the same AppVM/DispVM? What if they’re running in a separate AppVM? What about screen-sharing the whole desktop? (I know it’s a risk to show the world what your desktop looks like, but I’m just wondering.)
Suppose I trust a laptop’s built-in webcam and mic, but I don’t trust proprietary video conferencing apps not to compromise those devices, keep them activated after I quit the app, etc. Could that still happen after I’ve detached them from the qube? Could a compromised mic/webcam attack sys-usb or other qubes later on? Are there any best practices here? (I could always cover the webcam, so the mic is my bigger concern here.)
On web-based videoconferencing it works great for sharing an application or whole full screen.
zoom client
If you share the screen, the green rectangle that shows what’s the area being shared is what breaks it all. Basically whatever is inside that rectangle you can’t interact with or even see.
For non-web zoom the only solution I know about is to have two screens and do a presentation where you see the presentation notes on one when you have the presentation in full screen. And you share this second one. But keep in mind you will only see the slides changing in the presenter view.
Screen Sharing (full screen)
If you want to share the full Qubes desktop it is not trivial. The best solution I’ve seen is to use an HDMI capture card and send the HDMI output of the Qubes laptop onto another computer and share it from there. But this is quite complex.
Audio
The audio bit may have some issues. If running Qubes on a low-powered computer (2-core laptop, for example) you may hear the audio stuttering. If this is the case try pausing / killing any unneeded VMs.
If you’d like to avoid having a persistent zoom identity (assuming they don’t do machine fingerpriting), you can follow you can watch this talk or the transcript I made (specifically the part about zoom)
Hi,
e-learning forced me to go through it
I’m on PC with 2 monitors.
I don’t trust proprietary conferencing too, so I created separated Debian template for it. (but let’s be honest it doesn’t guarantee privacy at all, as said above, better use dispVM).
For Microphone I just attach it using Qubes GUI and it works well. (however on some notebooks/laptops might occur problem with external microphone when PCI device crashes. Some laptops are built with couple internal PCBs, not everything is included on motherboard) But this is the worst case. generally it works
Webcam. I don’t have, so I used my old android device with “IP webcam” app on template I installed v4l2loopback-dkms ffmpeg webcamoid adb, created dummy device with this script: GitHub - agarciadom/ipwebcam-gst: Simple shell script for using IP Webcam as a V4L2 webcam / sound source . Installation of course in template, run it in appVM. (To control remotely android device also through adb you can use scrcpy while sharing) So this might be an alternative if your internal webcam didn’t worked.
Screen sharing. As said above zoom is broken. In MS teams it works well (know from experience), In jitsi you can share only entire screen, so when you have two screens it looks shitty. Also in every share, white bars shows when you have always-on menu bars.
If you use two screens - to achieve single screen share I tried this script that also creates dummy video device. Unfortunately some clients that uses WiFi may have problem. Video share compresses and text becomes unreadable. (I had such problem with jitsi, I was connected to internet by cable, second person was connected through WiFi). And of course only things from conferencing appVM shares.
For me single app share doesn’t work (Debian, Firefox, Jitsi). Shall I move to fedora?
Screen sharing under Zoom may be used, if the fix discussed in qubes devalopment issue #5863 is applied. At least, for me it worked with unbuntu and fedora VMs.
Wouldn’t it be great if we had a “Stream Screen to AppVM” option? Then it would create a virtual camera which one could just select from their favorite videoconferencing/streaming software.