{"record":{"id":"d37edf5657fa7149","repo":"zed-industries/zed","slug":"wayland-screen-capture-not-yet-implemented","errorCode":null,"errorMessage":"Wayland screen capture not yet implemented.","messagePattern":"Wayland screen capture not yet implemented\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui_linux/src/linux/wayland/client.rs","lineNumber":981,"sourceCode":"            keyboard_focused_window: None,\n            loop_handle: handle.clone(),\n            enter_token: None,\n            cursor_style: None,\n            cursor_hidden_window: None,\n            clipboard: Clipboard::new(conn.clone(), handle.clone()),\n            data_offers: Vec::new(),\n            primary_data_offer: None,\n            cursor,\n            pending_activation: None,\n            startup_activation_token,\n            event_loop: Some(event_loop),\n            ime_enabled: None,\n        }));\n\n        WaylandSource::new(conn, event_queue)\n            .insert(handle)\n            .unwrap();\n\n        Self(state)\n    }\n}\n\nimpl LinuxClient for WaylandClient {\n    fn keyboard_layout(&self) -> Box<dyn PlatformKeyboardLayout> {\n        Box::new(self.0.borrow().keyboard_layout.clone())\n    }\n\n    fn displays(&self) -> Vec<Rc<dyn PlatformDisplay>> {\n        self.0\n            .borrow()\n            .outputs\n            .iter()\n            .map(|(id, output)| {\n                Rc::new(WaylandDisplay {\n                    id: id.clone(),\n                    name: output.name.clone(),","sourceCodeStart":963,"sourceCodeEnd":999,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/gpui_linux/src/linux/wayland/client.rs#L963-L999","documentation":"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.","triggerScenarios":"Thrown at crates/gpui_linux/src/linux/wayland/client.rs:975 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Implement Wayland screen capture via xdg-desktop-portal's ScreenCast interface (org.freedesktop.portal.ScreenCast)","Until implemented, callers should detect Wayland and disable/hide screen-share UI rather than invoking this API","The TODO notes window resizing of captured streams needs care once pipewire streams are wired up"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}