With the move between X11 and Wayland still ongoing, and likely won't finish for years, problems keep coming up like screen sharing but XwaylandVideoBridge may help solve this.
This new tool written by Aleix Pol and David Edmundson is designed to allow much easier sharing of screens and windows between X11 and Wayland, which should help to ease the transition from X11 to Wayland. The problem is that currently in the likes of Discord, MS Teams, Slack, Zoom and others that you run through Xwayland, you may end up with a black screen and no windows listed — this should solve it.
Picture credit: David Edmundson
Hopefully in future things like this won't be needed, as everything moves over to Wayland. Still, it's good to have tools available for legacy apps that won't get updated and great for the next few transition years.
As the developers on it say it should work "on any desktop that supports the Xdg desktop portals and pipewire streaming and have a working system tray".
I hope it's good and gets added to plasma6 by default, as considered in the blog post.
Last edited by JordanPlayz158 on 23 March 2023 at 5:16 pm UTC
Quoting: JordanPlayz158I would recommend WebCord for the discord specific example but XWayland Video Bridge is better as you don't need independent forks of each app but if there is a FOSS fork and/or implementation of an app that has support for native Wayland, I'd say that is the better choice.
Webcord doesn't support game activities, nor does it support discord mods like better discord.
Used to use both the native client and web cord because of this.
Discord should just really update their electron version and use pipewire sharing 😔
QuoteThe problem is that currently in the likes of Discord, MS Teams, Slack, Zoom and others that you run through Xwayland, you may end up with a black screen and no windows listed — this should solve it.
works fine here on latest gnome and teams pwa.
I don't understand which case this will help that xdg-desktop-portal-wlr doesn't handle.
Last edited by minidou on 23 March 2023 at 5:40 pm UTC
Quoting: LinasSomething like that should really be built into Wayland.
I'm not sure if you mean screensharing or that video bridge? If the former, well, there's pipewire, just not supported by Discord (the "app", it works in browsers).
If you mean the bridge itself, it's difficult while still honoring Wayland's security guarantees, and it would be more a part of XWayland than wayland.
Should it be in XWayland? Maybe, but this modular solution is good as well.
Having said that, I suppose the bulk of my sharing is from Chrome, running O365, so I guess I could experiment a little, since there's Wayland support there already. It really does feel like a lot of extra hassle for security features I won't notice or benefit from anyway (as a single-user system used to browse mainly very trusted sites).
Quoting: usernamerSo this is more of a workaround hack than a definitive solution.Presumably the definitive solution is for Wayland to become very mature and for everyone to switch to it so nobody is using X or XWayland any more.
Quoting: minidouIf you read the details you'll see their app is a convenient GUI for a non-expert user to be able to leverage what already exists (xdg-portals, pipewire, etc) through a system tray minimalist appQuoteThe problem is that currently in the likes of Discord, MS Teams, Slack, Zoom and others that you run through Xwayland, you may end up with a black screen and no windows listed — this should solve it.I don't understand which case this will help that xdg-desktop-portal-wlr doesn't handle.
how do you leverage xdg-desktop-portal-wlr at the moment?
Quoting: zany130Quoting: JordanPlayz158I would recommend WebCord for the discord specific example but XWayland Video Bridge is better as you don't need independent forks of each app but if there is a FOSS fork and/or implementation of an app that has support for native Wayland, I'd say that is the better choice.
Webcord doesn't support game activities, nor does it support discord mods like better discord.
Used to use both the native client and web cord because of this.
Discord should just really update their electron version and use pipewire sharing 😔
I'm in the same boat, so I'm really happy this exists. It was pretty much the only reason I still sometimes switched to X11
Quoting: MayeulCWhat I mean is that there should be a way for legacy apps to continue functioning, including screen sharing. Otherwise we end up with a chicken and egg problem where people cannot switch to Wayland if their apps don't work, and apps won't support Wayland if nobody uses it.Quoting: LinasSomething like that should really be built into Wayland.I'm not sure if you mean screensharing or that video bridge? [...]
Should it be in XWayland? Maybe, but this modular solution is good as well.
Quoting: MarlockQuoting: minidouIf you read the details you'll see their app is a convenient GUI for a non-expert user to be able to leverage what already exists (xdg-portals, pipewire, etc) through a system tray minimalist appQuoteThe problem is that currently in the likes of Discord, MS Teams, Slack, Zoom and others that you run through Xwayland, you may end up with a black screen and no windows listed — this should solve it.I don't understand which case this will help that xdg-desktop-portal-wlr doesn't handle.
how do you leverage xdg-desktop-portal-wlr at the moment?
The way I understand it, it's a sort of proxy for screen sharing. It exposes whatever you want on any graphic server, which can then be acquired by most apps.
I guess I'll have to try to understand better, but teams pwa in wayland+gnome is already great (https://github.com/emersion/xdg-desktop-portal-wlr/issues/107 aside), I suppose it's only relevant for older configurations.
Quoting: LinasQuoting: MayeulCWhat I mean is that there should be a way for legacy apps to continue functioning, including screen sharing. Otherwise we end up with a chicken and egg problem where people cannot switch to Wayland if their apps don't work, and apps won't support Wayland if nobody uses it.Quoting: LinasSomething like that should really be built into Wayland.I'm not sure if you mean screensharing or that video bridge? [...]
Should it be in XWayland? Maybe, but this modular solution is good as well.
They already can (this app is in fact proof of that), but in X.org any app could see any other app (or the entire user's screen for that matter) at any time, without explicit user consent.
It was actually barely impossible to block an app from seeing others even if you actively tried to... and that's the gaping security hole that strongly motivates the switch to Wayland.
You'll notice that the new app's dev comments on their blog that they could've even made it entirely automatic, so any app could see any other app without asking the user anything, if their solution was designed slightly different... but they chose to design it in a way that both makes things easier and still keeps you safe from silent snooping.
Last edited by Marlock on 24 March 2023 at 4:37 pm UTC
Quoting: zany130By game activities do you mean rich presence or do you mean game activies in VCs like putt party, for the former, yes, it does not have rich presence. For the latter though, I played putt party just fine, on Webcord 3.x even, not even 4.x (only staying on 3.X as on 4.X, when in a vc for a while, it just dies)Quoting: JordanPlayz158I would recommend WebCord for the discord specific example but XWayland Video Bridge is better as you don't need independent forks of each app but if there is a FOSS fork and/or implementation of an app that has support for native Wayland, I'd say that is the better choice.
Webcord doesn't support game activities, nor does it support discord mods like better discord.
Used to use both the native client and web cord because of this.
Discord should just really update their electron version and use pipewire sharing 😔
See more from me