You are not logged in.
I was in a Google Hangout video call with a coworker and I wanted to share my screen. So I clicked on Present Now > Your entire screen. However I could see in the preview, and my coworker later confirmed, that the entire screen was black. No windows were visible, not even a mouse.
I'm using GNOME with Wayland.
[~]$ echo $XDG_SESSION_TYPE
wayland
[~]$ gnome-shell --version
GNOME Shell 3.34.0
[~]$ google-chrome-stable --version
Google Chrome 77.0.3865.90
[~]$ firefox --version
Mozilla Firefox 69.0.1
As an experiment, I also tried sharing my screen with Firefox. Knowing Chrome doesn't currenly have any Wayland support, I launched Firefox with Wayland support, to see if that would make a difference.
MOZ_ENABLE_WAYLAND=1 firefox
However, I got the exact same result as Chrome. A black screen.
What finally did work was logging out and logging back in with GNOME on Xorg. Then Chrome screenshare worked.
My question is:
Is there a way to get screensharing to work on Wayland? Or is it broken and I'm forced to use Xorg?
Last edited by 1ptb3b (2020-01-28 20:55:00)
Offline
Take a look at pipewire to do screensharing in wayland
http://jgrulich.cz/2018/07/04/how-to-en … n-wayland/
MSI MEG Z390 ACE Motherboard, Intel Core i7-9700K, MSI GeForce RTX 2080
Offline
Hm. No dice. Here's what I did.
Going off the Arch Wiki, https://wiki.archlinux.org/index.php/PipeWire, I installed these.
# pacman -S xdg-desktop-portal-gtk pipewire
Here's the version I installed.
$ pipewire --version
pipewire
Compiled with libpipewire 0.2.6
Linked with libpipewire 0.2.6
I tried a
systemctl --user status pipewire.service
and noticed the service was inactive, so I ran
systemctl --user enable pipewire.service
and rebooted just to be sure.
When I got back, I did this to verify everything was running.
systemctl --user status pipewire.socket
systemctl --user status pipewire.service
The socket seemed fine, but something went wrong with the service it seems like.
$ systemctl --user status pipewire.service
● pipewire.service - Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-09-23 23:06:09 PDT; 3min 17s ago
Main PID: 962 (pipewire)
CGroup: /user.slice/user-1000.slice/user@1000.service/pipewire.service
└─962 /usr/bin/pipewire
Sep 23 23:06:09 systemd[956]: pipewire.service: Passing 1 fds to service
Sep 23 23:06:09 systemd[956]: pipewire.service: About to execute: /usr/bin/pipewire
Sep 23 23:06:09 systemd[956]: pipewire.service: Forked /usr/bin/pipewire as 962
Sep 23 23:06:09 systemd[962]: Skipping PR_SET_MM, as we don't have privileges.
Sep 23 23:06:09 systemd[956]: pipewire.service: Changed dead -> running
Sep 23 23:06:09 systemd[956]: pipewire.service: Job 21 pipewire.service/start finished, result=done
Sep 23 23:06:09 systemd[956]: Started Multimedia Service.
Sep 23 23:06:09 systemd[962]: pipewire.service: Executing: /usr/bin/pipewire
Sep 23 23:06:09 pipewire[962]: [E][v4l2-utils.c:76 spa_v4l2_open()] v4l2: Cannot open '/dev/video0': 13, Permission denied
Sep 23 23:06:09 pipewire[962]: [E][v4l2-utils.c:76 spa_v4l2_open()] v4l2: Cannot open '/dev/video1': 13, Permission denied
I decided to continue anyway and I opened up Google Chrome and enabled Pipewire here: chrome://flags/#enable-webrtc-pipewire-capturer.
However, this time, instead of a black blank screen. I got a gray blank screen.
I'm guessing those Permission denied errors are maybe not good.
I also tried setting this, based off of the GNOME Mutter tutorial, https://wiki.gnome.org/Projects/Mutter/RemoteDesktop.
[~]$ gsettings get org.gnome.mutter experimental-features
@as []
[~]$ gsettings set org.gnome.mutter experimental-features "['screen-cast', 'remote-desktop']"
[~]$ gsettings get org.gnome.mutter experimental-features
['screen-cast', 'remote-desktop']
[~]$
But, it didn't help.
Last edited by 1ptb3b (2019-09-24 06:25:07)
Offline
Try in chromium, it's not guaranteed that chrome is compiled with pipewire support.
Offline
Hm. Tried Chromium, enabled Pipewire in chrome://flags.
[~]$ chromium --version
Chromium 77.0.3865.90 Arch Linux
Same gray blank screen.
Offline
Hm. Tried Chromium, enabled Pipewire in chrome://flags.
[~]$ chromium --version Chromium 77.0.3865.90 Arch Linux
Same gray blank screen.
you should have a opened window of "Share Screen" when started hangout shared screen. Something like this:
as long as you don't select the device and "share" the Hangout screen will remain gray.
Remember that you need to have all the settings made for Pipewire. In may case I have:
$ chromium --version
Chromium 80.0.3987.163 Arch Linux
$ echo $XDG_SESSION_TYPE
wayland
$ pacman -Qs pipewire
local/libpipewire02 0.2.7-1
User space API to deal with multimedia pipelines (0.2)
local/pipewire 0.3.2-1
Server and user space API to deal with multimedia pipelines
local/pipewire-pulse 0.3.2-1
Server and user space API to deal with multimedia pipelines (PulseAudio support)
$ pacman -Qs xdg-desktop-portal
local/xdg-desktop-portal 1.6.0-2
Desktop integration portals for sandboxed apps
local/xdg-desktop-portal-gtk 1.6.0-4
A GTK+ backend for xdg-desktop-portal
$ systemctl --user status pipewire.service
● pipewire.service - Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-04-06 15:57:50 -03; 31min ago
TriggeredBy: ● pipewire.socket
Main PID: 1255 (pipewire)
CGroup: /user.slice/user-1000.slice/user@1000.service/pipewire.service
├─1255 /usr/bin/pipewire
└─1263 exec pipewire-media-session
$ systemctl --user status pipewire.socket
● pipewire.socket - Multimedia System
Loaded: loaded (/usr/lib/systemd/user/pipewire.socket; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-04-06 15:57:50 -03; 31min ago
Triggers: ● pipewire.service
Listen: /run/user/1000/pipewire-0 (Stream)
CGroup: /user.slice/user-1000.slice/user@1000.service/pipewire.socket
"We buy things we don't need
with money we don't have
to impress people we don't like"
Offline