Problem
Screen sharing on Fedora 43 GNOME Wayland is unreliable for WFH developer collaboration:
- Slack desktop screen sharing is fully disabled — Slack hardcodes Chromium's
WebRTCPipeWireCapturer feature off in app.asar, so the legacy --enable-features workaround is a no-op since Slack ~4.30.
- Google Meet starts then freezes within seconds — matches a known mutter ScreenCast bug. (Both diagnosed in detail in Plan 028.)
This is causing major friction for pair programming, demos, and collaboration. We need a reliable alternative that works today and isn't dependent on Slack/Meet getting fixed.
What this plan adds
Plan 028 takes the "fix the broken tools" route. Plan 031 is complementary — find one or more reliable alternatives so the team has a working channel even when upstream is broken.
Research summary (Phase 1 + 2 complete)
Four parallel research tracks, ~10k words across 4 reports + a synthesis shortlist. All four tracks converged on the same diagnosis: the bug is in the GNOME/Mutter portal stack, and any browser-based tool using getDisplayMedia() will hit the same freeze.
Working solutions split into three "bypass classes":
- Bypass the portal → Sunshine + Moonlight (KMS/DRM framebuffer capture)
- Bypass the browser → Discord native RPM (Wayland-stable since v0.0.76 Jan 2025), Galène native client
- Bypass the screen-share path entirely → OBS + v4l2loopback virtual webcam (exploits the universal asymmetry: vendors block screen-share but cannot block the webcam path without breaking video calls)
Cross-cutting operational rules that apply regardless of tool choice:
- Native RPM > Flatpak (Flatpak sandboxing breaks portal capture for several apps)
- Firefox > Chromium for any in-browser screenshare on F43
Phase 3 test ladder (cheapest first, stop at first solve)
| # |
Test |
Effort |
What it proves |
| 0 |
gnome-remote-desktop diagnostic |
10 min |
Bug in Mutter (browser candidates dead) vs Chromium (browser candidates open up) |
| 1 |
Discord native RPM |
30 min |
Daily-driver candidate: Wayland-stable, free, voice + screen + audio in one |
| 2 |
OBS + v4l2loopback |
90 min |
Universal solve: makes every meeting tool work via webcam path |
| 3 |
Sunshine + Moonlight + Tailscale |
3 hr |
Escape hatch: KMS bypass = structurally guaranteed |
Tools explicitly ruled out
Around (shut down March 2025), CoScreen / Pop / Tuple (no production Linux client), JetBrains Code With Me (sunset announced March 2026), Teams native (dead since Dec 2022), Parsec (X11-only), wayvnc (wlroots-only, doesn't run on GNOME Mutter), waypipe (per-app, wrong problem), BigBlueButton (install complexity + 2025 black-screen regressions), Element Call (5-service stack), Zoom native desktop (same bug class as Meet — use web client), RustDesk (open Wayland issues + portal-path).
Plan & research files
All committed on the F43 branch at CLAUDE/Plan/031-reliable-screen-sharing/:
Status
- ✅ Phase 1 — research (4 parallel agents, all reports landed)
- ✅ Phase 2 — synthesis + shortlist + decision recorded
- ⬜ Phase 3 — live testing on actual hardware (awaiting go-ahead)
- ⬜ Phase 4 — Ansible playbook(s) + usage doc
Related
- Plan 028 (
CLAUDE/Plan/028-fedora-screen-sharing/) — root-cause fixes for Slack and Meet specifically. Complementary but independent: 028 fixes the broken tools, 031 finds replacements.
Problem
Screen sharing on Fedora 43 GNOME Wayland is unreliable for WFH developer collaboration:
WebRTCPipeWireCapturerfeature off inapp.asar, so the legacy--enable-featuresworkaround is a no-op since Slack ~4.30.This is causing major friction for pair programming, demos, and collaboration. We need a reliable alternative that works today and isn't dependent on Slack/Meet getting fixed.
What this plan adds
Plan 028 takes the "fix the broken tools" route. Plan 031 is complementary — find one or more reliable alternatives so the team has a working channel even when upstream is broken.
Research summary (Phase 1 + 2 complete)
Four parallel research tracks, ~10k words across 4 reports + a synthesis shortlist. All four tracks converged on the same diagnosis: the bug is in the GNOME/Mutter portal stack, and any browser-based tool using
getDisplayMedia()will hit the same freeze.Working solutions split into three "bypass classes":
Cross-cutting operational rules that apply regardless of tool choice:
Phase 3 test ladder (cheapest first, stop at first solve)
Tools explicitly ruled out
Around (shut down March 2025), CoScreen / Pop / Tuple (no production Linux client), JetBrains Code With Me (sunset announced March 2026), Teams native (dead since Dec 2022), Parsec (X11-only), wayvnc (wlroots-only, doesn't run on GNOME Mutter), waypipe (per-app, wrong problem), BigBlueButton (install complexity + 2025 black-screen regressions), Element Call (5-service stack), Zoom native desktop (same bug class as Meet — use web client), RustDesk (open Wayland issues + portal-path).
Plan & research files
All committed on the
F43branch atCLAUDE/Plan/031-reliable-screen-sharing/:PLAN.md— main plan, decisions, test laddershortlist.md— unified comparison matrix + per-test detailresearch-1-self-hosted-platforms.mdresearch-2-native-linux-tools.mdresearch-3-saas-current-state.mdresearch-4-unconventional.mdStatus
Related
CLAUDE/Plan/028-fedora-screen-sharing/) — root-cause fixes for Slack and Meet specifically. Complementary but independent: 028 fixes the broken tools, 031 finds replacements.