From d3023f5e5a2bea04ffecfd7f3c5b73d9696e1b53 Mon Sep 17 00:00:00 2001 From: Timon Schelling Date: Sat, 26 Jul 2025 17:40:53 +0000 Subject: [PATCH] tell cef to use wayland if available --- desktop/src/cef/internal/app.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/desktop/src/cef/internal/app.rs b/desktop/src/cef/internal/app.rs index 5da815d162..1ec22d6ec8 100644 --- a/desktop/src/cef/internal/app.rs +++ b/desktop/src/cef/internal/app.rs @@ -1,3 +1,5 @@ +use std::env; + use cef::rc::{Rc, RcImpl}; use cef::sys::{_cef_app_t, cef_base_ref_counted_t}; use cef::{BrowserProcessHandler, CefString, ImplApp, ImplCommandLine, SchemeRegistrar, WrapApp}; @@ -34,6 +36,20 @@ impl ImplApp for AppImpl { // Disable GPU acceleration, because it is not supported for Offscreen Rendering and can cause crashes. cmd.append_switch(Some(&CefString::from("disable-gpu"))); cmd.append_switch(Some(&CefString::from("disable-gpu-compositing"))); + + // Tell CEF to use Wayland if available + #[cfg(not(any(target_os = "macos", target_os = "windows")))] + { + let use_wayland = env::var("WAYLAND_DISPLAY") + .ok() + .filter(|var| !var.is_empty()) + .or_else(|| env::var("WAYLAND_SOCKET").ok()) + .filter(|var| !var.is_empty()) + .is_some(); + if use_wayland { + cmd.append_switch_with_value(Some(&CefString::from("ozone-platform")), Some(&CefString::from("wayland"))); + } + } } }