Fixing Wayland: Xwayland screen casting

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

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

15 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.

1 Like