I’ve recently managed to make my fedora use wayland with my GPU.
But I have one problem: I’m unable to share my screen via apps like Discord (electron base) or Slack (idk how it works). Screen sharing however works with my browser.
Error occurred in handler for 'DISCORD_DESKTOP_CAPTURER_GET_SOURCES': Failed to get sources.
'loop->recurse > 0' failed at ../src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
'loop->recurse > 0' failed at ../src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
'loop->recurse > 0' failed at ../src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
'loop->recurse > 0' failed at ../src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
Discord does not implement PipeWire-based screensharing yet, you’ll need XWaylandVideoBridge to expose it properly. You can install the xwaylandvideobridge package to use it. It is preloaded in Fedora KDE since Fedora 39, but usable on any Wayland desktop.
This requires StatusNotifierItem (SNI) support in your desktop, which all major desktops support out of the box except GNOME. For GNOME, you will need to do the following:
Install the AppIndicator extension (it supports SNI as well) by installing the gnome-shell-extension-appindicator package.
Enable the extension: gnome-extensions enable appindicatorsupport@rgcjonas.gmail.com
Once this is in place, you can launch XWaylandVideoBridge and it should show up in your status tray area. You can then configure what to expose to an XWayland application for screensharing.
After I enabled appindicatorsupport@rgcjonas.gmail.com and restarted the OS, I’m now able to share my screen. A “Virtual Monitor” option has shown and solved my sharing problem.