42
[Linux] Wayland support
B
Ben Grant
I run GNOME 3.36 on top of Wayland and Arch Linux. I can create meetings and start the screen share with no reported issues, but people who join only see a black screen (plus whatever I have drawn). This is because Screen is trying to use X11 APIs to capture what's on my screen, but things work differently under Wayland so it is not able to capture anything.
Here is code that implements screen capture under Wayland for OBS Studio: https://gitlab.gnome.org/feaneron/obs-xdg-portal/-/tree/master. Screen will probably need to do something similar (or wait for Chromium/Electron to support screen capture under Wayland).
Output of
snap info screen
:name: screen
summary: Supercharged meetings for remote engineering teams
publisher: Screen, Inc. (screen)
store-url: https://snapcraft.io/screen
contact: team@screen.so
license: unset
description: |
Communicate visually with drawing. Collaborate efficiently with multiplayer
screen sharing. So easy, it feels like you’re in the same room.
commands:
- screen
snap-id: HBe7T7yVKD7Tm1rQ2A2MZSMV00lsuSy9
tracking: latest/stable
refresh-date: today at 13:01 PDT
channels:
stable: 1.0.14 2020-03-24 (73) 143MB -
candidate: ↑
beta: ↑
edge: 0.8.32 2019-11-25 (26) 121MB devmode
installed: 1.0.14 (73) 143MB -
Log In
S
Simon Law
Trying to run Pop (dev) 8.0.23 with Wayland leads to a segfault:
slaw@nyancat:~$ /usr/bin/pop-dev --enable-features=UseOzonePlatform --ozone-platform=wayland
Segmentation fault (core dumped)
Firing up GDB is not particularly useful because pop-dev is shipped without symbols. Still, here is the backtrace:
Thread 1 "Pop-dev" received signal SIGSEGV, Segmentation fault.
0x0000555557f37324 in ?? ()
(gdb) bt
#0 0x0000555557f37324 in ()
#1 0x00007fffffffc350 in ()
#2 0x0000555557f32f02 in ()
#3 0x00007fffffffc3c0 in ()
#4 0x00007fffffffc388 in ()
#5 0x00007fffffffc3b0 in ()
#6 0x00005555575c193c in ()
#7 0x0000347c8c886260 in ()
#8 0x0000347c8c886260 in ()
#9 0x0000347c8ca01a40 in ()
#10 0xaaaaaaaaaaaaaa01 in ()
#11 0x00007fffffffc3c0 in ()
#12 0x0000347c8ca01980 in ()
#13 0x00007fffffffc4d8 in ()
#14 0x00007fffffffc3c0 in ()
#15 0x0000191408d1c08d in ()
#16 0x0000000000000000 in ()
M
Mathis Antony
I'm getting the following with 8.0.39 dev and 8.0.20.
pop-dev --enable-features=UseOzonePlatform --ozone-platform=wayland
interface 'wl_output' has no event 4
tcmalloc: large alloc 1073741824 bytes == 0x20a70a5d6000 @ 0x55f3a1062385 0x7fe7d78a3466
Failed to generate minidump.
I'm using hyprland on NixOS. And running pop.com through
steam-run
. This works fine on X11.A
Adam DiCarlo
Mathis Antony: I get the same thing. I'm using Sway 1.8.1. Going by the results googling for that
'wl_output' has no event 4
, the Pop folks might be able to fix the problem by either updating Electron or applying this patch to it: https://forums.gentoo.org/viewtopic-p-8689650.html?sid=59bc389d53fbfae88bb9be355de69801. Don't know for sure, but I sure wish Pop's client were open-source (even if only "source-available") so I could tinker with it...A
Adam DiCarlo
er, the patch mentioned in that post, which is https://chromium.googlesource.com/chromium/src/+/dd4c3ddadbb9869f59cee201a38e9ca3b9154f4d%5E%21/
J Sherwani (Pop Team)
open
J Sherwani (Pop Team)
Merged in a post:
"Exotic" wayland support
J
Jiří Prokop
Hello, I recently discovered your app and it seems very nice. I've read your blog post and realize you are a very small team but I'd like to ask this anyway.
Would you consider to support some of the "exotic" wayland desktop environments (Linux OS)?
I know you already partially support it but I'm not using Gnome, I use Sway which is based on wlroots. They recently added support for Pipewire protocol which makes screensharing working nicely.
Also there would be ways how to enable inputting.
I can provide some guidelines if you would be interested into supporting this niche setup, although I will fully understand why you won't.
And thanks for a great work, btw.
J Sherwani (Pop Team)
Merged in a post:
[Linux] Wayland - Clicks on any top bar items ignored when in a meeting
Ali Asad Lotia
Distribution: Arch Linux
Desktop Environment: Gnome 3.36
Compositor: Mutter (default wayland compositor for Gnome)
While in a Wayland session, when I start a meeting I am clicking on the Gnome top bar items such as the clock (which also brings up the notifications history and calendar among other things) has no effect. Ending the meeting restores the expected functionality of displaying the expanded view of the top bar item when it is clicked.
screen.so snap details
Steps to reproduce:
- Ensure you are running Gnome under Wayland. That can be confirmed by looking at the "Settings -> About" or running 'echo $XDG_SESSION_TYPE' in a terminal running within that session and confirming the output is 'wayland'
- Start screen.so
- Start a meeting
- Click on the top bar and confirm that clicks are not registering
- End the meeting and click on the top bar and note that the clicks are registering
name: screen
summary: Supercharged meetings for remote engineering teams
publisher: Screen, Inc. (screen)
store-url: https://snapcraft.io/screen
contact: team@screen.so
license: unset
description: |
Communicate visually with drawing. Collaborate efficiently with multiplayer
screen sharing. So easy, it feels like you’re in the same room.
commands:
- screen
snap-id: HBe7T7yVKD7Tm1rQ2A2MZSMV00lsuSy9
tracking: latest/stable
refresh-date: 2 days ago, at 10:11 BST
channels:
latest/stable: 1.0.16 2020-03-30 (75) 143MB -
latest/candidate: ↑
latest/beta: ↑
latest/edge: 0.8.32 2019-11-25 (26) 121MB devmode
installed: 1.0.16 (75) 143MB -
J Sherwani (Pop Team)
Hi Jiří — thanks for writing in, and I'm sorry for the delayed response. We're now working on adding Wayland support, and would love your support in this. Please find a time via https://calendly.com/j-pop/30min if that works for you — if you need time slots that aren't in this list, feel free to suggest any that are slightly outside, as I can stay up late to speak with you. Thank you!
J Sherwani (Pop Team)
We are now looking into Wayland support in a big way. However, we need some help as we aren't experts in Wayland (or even X for that matter). If any one of you knows someone that we could pay to speak with as a consultant on this, please let us know. We're working on things on our end but I figure it doesn't hurt to ask our community!
B
Bennett Piater
J Sherwani (Pop Team): You may want Drew DeVault - he wrote a wayland compositor (Sway) and module library for implementing wayland compositors (wlroots) as well as the literal wayland book (https://wayland-book.com/)
He is also available for consulting in principle - not sure about his schedule of course :)
However, he may refuse to work on non-free software :P
T
Thomas Ritter
J Sherwani (Pop Team): Two developers working with Wayland in this field are:
They both work for RedHat, so I'm not sure if they are able to consult here, but maybe you can reach out to them.
J Sherwani (Pop Team)
We're working on a fix for this, and have a potential solution. If anyone here is able to, please download our dev build from https://dev.pop.com/download (it runs on a totally separate database with its own authentication, so you'll have to sign up for a new account there). Let us know if the dev app works on Wayland for you, and let us know if you run into any issues. Thanks!
T
Thomas Ritter
J Sherwani (Pop Team): Hi, thanks for the info, I tried it and ran into the following problem. When I try to share the screen, I get the usual permission window for screen sharing under Wayland. For some reason, it seems to be blocked though, I cannot click on anywhere on the window, it seems like an invisible window is in front of it, preventing me to click on the window. I also tried keyboard navigation with tabs but was only able to reach the "Cancel" button and hit enter. This was the only way I could get out of it by the way, I could not click on cancel. I tried this with an external monitor and without it, I restarted Pop a few times and I also did a reboot, so it seems it's not a temporary issue on my machine.
I'm using Fedora 33 under Gnome, with all the latest updates. Let me know if you need more information on this.

J Sherwani (Pop Team)
Thomas Ritter: Thanks, I've been able to reproduce that. So it looks like we have some more work to do. I'll let you know once things are looking good.
E
Elijah Lynn
All the cutting edge Linux users use Wayland and Screen doesn't share the screen on Wayland. So that means none of the cutting edge Linux folks use Screen in its current state.
This might be a good business move to support Wayland, because of the effect that early adopters can have.
T
Thomas Ritter
Since Ubuntu will use Wayland in 21.04 by default (https://www.omgubuntu.co.uk/2021/01/ubuntu-21-04-will-use-wayland-by-default), is there any progress on this? Would be great to see Screen support Wayland as well :)
J Sherwani (Pop Team)
Is anyone able to share a full screen from Chrome under Wayland? On every other platform (Mac, Windows, X11), clicking on the left button on https://webrtc.github.io/samples/src/content/getusermedia/getdisplaymedia/ shows the full screen in the preview. In Wayland, it does not for me. We’re blocked on Chrome adding support for Wayland first. Let me now if you’re able to get it working on Chrome and then we can revisit this.

J
José Pereira
J Sherwani (Pop Team): it sort of works for me with Fedora 32 (beta) / default Gnome Wayland session with a few caveats: 1) getDisplayMedia experiment displays the black rectangle while recording although, after stopping, the recording is ok (it all works fine with other conferencing tools such as jitsi); 2) sometimes it gets stuck and a restart of pipewire is needed (systemctl restart --user pipewire); 3) sharing needs to be accepted twice in the popup, which sometimes is hidden behind other windows.
J Sherwani (Pop Team)
José Pereira: Could you share a screenshot of the window showing the full screen capture inside it?
J
José Pereira
J Sherwani (Pop Team): Sure. Here are screenshots from Chrome while: 1) selecting the source; 2) recording (black screen!) and 3) playing back. The black screen while recording might be a problem with the webrtc sample, as it works elsewhere.



J
José Pereira
As an example, this one works: https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/
T
Thomas Ritter
J Sherwani (Pop Team): I'm also using Fedora 32, in Chromium the key is to enable Pipewire support (in chrome://flags) as seen in the screenshot. Pipewire makes sure that Wayland screens are accessible. It shows a native dialog where you can select which monitor to show and then I'm able to share my screen. Let me know if I can help here otherwise or if you need any further information.



Load More
→