Skip to content

Plan 031: Reliable screen sharing for Fedora 43 Wayland (research complete, awaiting Phase 3 testing) #17

@LTSCommerce

Description

@LTSCommerce

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":

  1. Bypass the portal → Sunshine + Moonlight (KMS/DRM framebuffer capture)
  2. Bypass the browser → Discord native RPM (Wayland-stable since v0.0.76 Jan 2025), Galène native client
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions