zed-industries/zed · error

Wayland screen capture not yet implemented.

Error message

Wayland screen capture not yet implemented.

What it means

Sentinel error: the Wayland client's screen_capture_sources immediately resolves with Err because screen capture is unimplemented on Wayland (see the TODO). It is not a runtime failure of an attempted capture; callers requesting screen-share sources on Wayland always get this.

Source

Thrown at crates/gpui_linux/src/linux/wayland/client.rs:981

            keyboard_focused_window: None,
            loop_handle: handle.clone(),
            enter_token: None,
            cursor_style: None,
            cursor_hidden_window: None,
            clipboard: Clipboard::new(conn.clone(), handle.clone()),
            data_offers: Vec::new(),
            primary_data_offer: None,
            cursor,
            pending_activation: None,
            startup_activation_token,
            event_loop: Some(event_loop),
            ime_enabled: None,
        }));

        WaylandSource::new(conn, event_queue)
            .insert(handle)
            .unwrap();

        Self(state)
    }
}

impl LinuxClient for WaylandClient {
    fn keyboard_layout(&self) -> Box<dyn PlatformKeyboardLayout> {
        Box::new(self.0.borrow().keyboard_layout.clone())
    }

    fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>> {
        self.0
            .borrow()
            .outputs
            .iter()
            .map(|(id, output)| {
                Rc::new(WaylandDisplay {
                    id: id.clone(),
                    name: output.name.clone(),

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Implement Wayland screen capture via xdg-desktop-portal's ScreenCast interface (org.freedesktop.portal.ScreenCast)
  2. Until implemented, callers should detect Wayland and disable/hide screen-share UI rather than invoking this API
  3. The TODO notes window resizing of captured streams needs care once pipewire streams are wired up
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/gpui_linux/src/linux/wayland/client.rs:975 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20). Data as JSON: /api/errors/d37edf5657fa7149. Report an issue: GitHub.