A lot of conferencing or chatting platforms do not have a native Linux client and do not allow you to share your screen through their web apps either. An example of such a platform is Adobe Connect.
You could use Wine (vanilla wine or a wrapper like lutris, bottles, playonlinux, and etc.) to install the native client and share your screen that way, but sometimes getting that to work is just way too much of a hassle.
Here are two ways that I managed to share my screen on Adobe Connect and other platforms that don’t have a native linux client:
Virtual Camera
If there is a web app available and it allows you to share your webcam (like Adobe Connect), here’s how you can use this feature to share your screen on the web app using a virtual camera.
1. Install OBS Studio. I highly recommend installing it via the official Flatpak package, mainly because the binaries provided by various distributions are sometimes compiled with certain features turned off and are not always up to date.
2. Since version 26.1 OBS supports built-in Virtual Camera output on Linux. In order to use it, you have to install the v4l2loopback module. (depending on your distribution you may want to use DKMS). You need to find out how you can install this module for your distribution (you can also build it yourself). This could be as simple as:
|
|
for Arch-based distros,
|
|
for debian-based distros, or
|
|
for NixOS.
After the installation, you need to make sure that the v4l2loopback
module is loaded.
3. Now open OBS Studios. You should see a Start Virtual Camera
button. If you don’t see such a button, open OBS using a terminal, read the log messages, and diagnose why OBS can’t enable its virtual camera functionality.
4. Create a Scene
and add a Screen Capture
source to it. Then, start the virtual camera.
5. Join a webinar using a browser (I use Firefox
. Some people have reported that their virtual cameras don’t show up on chromium-based browsers).
Either get the host to make you a host as well or ask them to do the following:
- Go to
Preferences -> Video
and change the aspect ratio to16:9
.
- Create a new layout and add your desired pods to it along with a large video pod.
6. Click on the webcam button and allow the site to use your virtual camera.
7. Click on Start Sharing
to share your screen.
You can control the output resolution of OBS in its settings. Turning down the resolution may help reduce the needed bandwidth to stream your desktop.
Virtual Machine
If there are no web apps, you can use a Windows virtual machine to share your Linux desktop. This is a little bit more involved and requires more resources. Here is the basic idea:
1. Create a Windows guest VM I use libvirt managed by virt-manager.
2. Install Adobe Connect in the VM
3. Install a remote desktop sharing client in the VM (e.g. TigerVNC)
4. Make sure there is network connectivity between the guest VM and host (the default NAT is okay)
You need the IP address of the host machine in the virtual network. You can do a simple
ip a
on the host machine to find the IP address of the interface connected to the virtual network.
5. Install a remote desktop sharing server in the host (e.g. VNC Server, TigerVNC)
I use TigerVNC. First, create a password using vncpasswd
and then run
x0vncserver -PasswordFile=.vnc/passwd
to start a VNC server connected directly to your running x-server without creating a virtual desktop.
Now you can share the screen of your Windows guest in a webinar and connect to the VNC server on the host machine using its IP address in the virtual network and share the screen of your Linux machine through the Windows VM.