Status
Recording now works end-to-end on Linux/Wayland after #267 — thanks! However the start flow still goes through three separate picker interactions before recording begins, which is confusing.
Environment
Steps to reproduce
- Click the Record button (no source preselected)
- OS portal dialog appears → select "Built-in display"
- The in-app source dropdown opens on the overlay
- Select the screen again in the dropdown
- Click Record again
- Countdown timer runs
- When countdown ends, OS portal dialog appears again → select "Entire screen"
- Recording finally starts
So the user is asked to pick the screen three times (twice via the OS portal, once via Recordly's in-app dropdown) for what is conceptually a single action.
Root cause (best guess)
On Wayland, the xdg-desktop-portal model is fundamentally different from macOS/Windows:
- `desktopCapturer.getSources()` itself triggers a portal dialog (this is what fires when the in-app dropdown opens to populate sources).
- `getDisplayMedia()` triggers another portal dialog because Wayland portal grants are per-request (no reusable token without xdg-desktop-portal session restore).
- The in-app source picker assumes a macOS/Windows-style enumerate-then-pick model, which doesn't fit Wayland.
Suggested UX on Linux/Wayland
Skip the in-app source picker entirely; clicking Record should go straight to:
- countdown
- single `getDisplayMedia()` call (one OS portal dialog)
- recording starts
This collapses the three picker interactions into one. Electron's `setDisplayMediaRequestHandler` accepts a `useSystemPicker` option that may help here — worth investigating whether it's now supported on Linux in Electron 39.
Notes
Status
Recording now works end-to-end on Linux/Wayland after #267 — thanks! However the start flow still goes through three separate picker interactions before recording begins, which is confusing.
Environment
XDG_SESSION_TYPE=wayland)Steps to reproduce
So the user is asked to pick the screen three times (twice via the OS portal, once via Recordly's in-app dropdown) for what is conceptually a single action.
Root cause (best guess)
On Wayland, the xdg-desktop-portal model is fundamentally different from macOS/Windows:
Suggested UX on Linux/Wayland
Skip the in-app source picker entirely; clicking Record should go straight to:
This collapses the three picker interactions into one. Electron's `setDisplayMediaRequestHandler` accepts a `useSystemPicker` option that may help here — worth investigating whether it's now supported on Linux in Electron 39.
Notes