Fixing Wayland: Xwayland screen casting

I wrote a blog about making xwayland screencasting work on wayland.

https://blog.davidedmundson.co.uk/blog/xwaylandvideobridge/

18 Likes

This is extremely cool and is one step closer to world domination :tada: Thanks for working on it!

1 Like

This is awesome, an extremely useful tool and solving a pretty big Wayland showstopper for a lot of people stuck with applications who refuse to use the new protocols (like me) :slight_smile: I can’t wait to try this out.

2 Likes

This is amazing! This will definitely ease the transition from X11 to Wayland.

I have one bit of feedback: From the screenshot on the blog post, it shows on the window “Choose what to share with PipeWire By-Pass”. From a user perspective, “PipeWire By-Pass” is non-relevant technical jargon. I think that could be dropped.

Thank you, David and Aleix for your amazing work!

4 Likes

Great work, it was really simple to set up and use! My only gripe would be that it shows up as an application in the task switcher, even though it should probably not be visible to the user as you can not really switch to that “window” anyways.

3 Likes

This was pretty much the only problem I was still having with Wayland, so I cannot stress how happy I am with this.

This is awesome <3 Thanks very much!

I don’t know if this is the right place to post this (do correct me if i need to post it somewhere else), but once i downloaded the app, enabled it and tried streaming with discord, the colours got funky. They have been inverted, other than the cursor. Could i do something about it? For now it’s only from my side, i have not got feedback from the one watching the stream, but it still seems like an issue. I use an nvidia gpu

P.S. - I am also on KDE Neon, with up-to-date packages

Is it possible to get the “nuclear” option of it actually creating a portal for every single window when I run it? I would rather than then having to specifically select a Window every time.

Thanks.
It’s as good a place as any. If it’s red and blue swapped, someone else found and fixed a bug that sounds similar in our underlying library already. I’ll make another release sometime soon.

Is it possible to get the “nuclear” option

I haven’t written code to do it yet.

It’s doable on paper, but it’s not trivial. I would have to duplicate the same code the portal is using internally, that also means extra permissions that I can’t call from inside the flatpak. So I’m curious as to what sucks with the current workflow to see if it’s worth the investment.

It’s the duplication . For example, if I were to use something like discord-screenaudio and press “go live,” it brings up the portal, but not discords internal functionality. This brings up the portal and discords screen in a rather “ugly” way, bringing up both windows requiring you to select one first from the portal. T

Next if you stop streaming, or try to change windows, the portal no longer appears, meaning to make it appear you have to disconnect and reconnect. For example, go stream, pick a window, stream it, and stop streaming and try to stream again. Your same window appears, but you get no option to select a new window. If you disconnect and reconnect, you do get the option.

I don’t think either of this are fixable through discord itself unless they integrate the concepts into discord (they most likely wont) so the best solution in my opinion would be to simply expose all the windows to discord, meaning the functionality would mirror what you would expect and see on xwayland.

Either way thank you for all your hard work.

Anyone run into this issue Current screen gets shared as a small corner in a white window (#5) · Issues · David Edmundson / xwaylandvideobridge · GitLab

@David_Edmundson

awesome work

the only thing I want to know for now is that would it work on whole screen sharing?

because I have some Xwayland app that only shares a whole screen instead of per-app window

@David_Edmundson

is that would it work on whole screen sharing

What I wrote wouldn’t work for that. It’d probably be doable, but a lot more work than just rendering content into a window.

2 Likes

Thanks very much for creating this. Out of curiosity (and having no particular dev experience around pipewire) - what is the debug tool for pipewire streams that was the inspiration?

Some tools in the examples folder of kpipewire

Hello! I’ve just installed Wayland Video Bridge on Fedora 38 and when I share screen in discord I can see the bridge as a white box. I saw a review in Discover tool that the same happens with others.

I have made an issue on KDE bugs but there has been no response yet. Is there any way I can get a hold of anyone? I also have the white box bug on Fedora 38. I seem not to be the only one with the issue but it seems that it is flying under the radar. @David_Edmundson .

https://bugs.kde.org/show_bug.cgi?id=473599

@David_Edmundson FINALLY able to find somebody involved in XWayland Video Bridge.

There’s no install instructions, not even “just use make” or “just use cmake” or anything like that. Very unhelpful.

Also, the only flatpak I was only to see was Nightly, not a versioned release. Um…I run Debian for a reason. I’m OK installing flatpaks for some things for newer versions, things like that, but I don’t want to run nightlies.

org.kde.xwaylandvideobridge is not on Flathub, and the only flatpak repo I was able to was your nightly. I even found Tutorials/Flatpak - KDE UserBase Wiki which says to use Flathub, otherwise for nightlies there’s a section. Which I found Index of /flatpak/xwaylandvideobridge-nightly.

Tried to get some help via Installation instructions for XWaylandVideoBridge? thread, but nothing useful after several days.

So, while I’m sure this works awesome, and I don’t want to sound too ungrateful, but any way to add it to whatever the regular flathub versioned releases? You have version tags, why not release those to flathub like the rest of the KDE applications? And maybe a tiny bit more documentation besides “Release Process”?