summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src-tauri/src/main.rs
diff options
context:
space:
mode:
authorIsrael Araújo de Oliveira <[email protected]>2026-02-09 06:00:35 -0300
committerGitHub <[email protected]>2026-02-09 17:00:35 +0800
commit93a11ddedf697c9b673dd59628cee3db48ac67d0 (patch)
treeeaa37846d594604d49afb0333662df453103e88f /packages/desktop/src-tauri/src/main.rs
parent94feb811ca32f4e01a1bada9cfbc022e8d5ca9e3 (diff)
downloadopencode-93a11ddedf697c9b673dd59628cee3db48ac67d0.tar.gz
opencode-93a11ddedf697c9b673dd59628cee3db48ac67d0.zip
feat(desktop): add native Wayland toggle on Linux (#11971)
Co-authored-by: Brendan Allan <[email protected]>
Diffstat (limited to 'packages/desktop/src-tauri/src/main.rs')
-rw-r--r--packages/desktop/src-tauri/src/main.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/packages/desktop/src-tauri/src/main.rs b/packages/desktop/src-tauri/src/main.rs
index 9ffee8aa5..a95c62578 100644
--- a/packages/desktop/src-tauri/src/main.rs
+++ b/packages/desktop/src-tauri/src/main.rs
@@ -3,6 +3,9 @@
// borrowed from https://github.com/skyline69/balatro-mod-manager
#[cfg(target_os = "linux")]
+mod display;
+
+#[cfg(target_os = "linux")]
fn configure_display_backend() -> Option<String> {
use std::env;
@@ -23,12 +26,16 @@ fn configure_display_backend() -> Option<String> {
return None;
}
- // Allow users to explicitly keep Wayland if they know their setup is stable.
- let allow_wayland = matches!(
- env::var("OC_ALLOW_WAYLAND"),
- Ok(v) if matches!(v.to_ascii_lowercase().as_str(), "1" | "true" | "yes")
- );
+ let prefer_wayland = display::read_wayland().unwrap_or(false);
+ let allow_wayland = prefer_wayland
+ || matches!(
+ env::var("OC_ALLOW_WAYLAND"),
+ Ok(v) if matches!(v.to_ascii_lowercase().as_str(), "1" | "true" | "yes")
+ );
if allow_wayland {
+ if prefer_wayland {
+ return Some("Wayland session detected; using native Wayland from settings".into());
+ }
return Some("Wayland session detected; respecting OC_ALLOW_WAYLAND=1".into());
}