Browse Source

fix(desktop): read wayland preference from store (#13081)

Brendan Allan 2 weeks ago
parent
commit
783888131e

+ 1 - 1
packages/desktop/src-tauri/src/lib.rs

@@ -402,7 +402,7 @@ fn check_linux_app(app_name: &str) -> bool {
 #[tauri::command]
 #[specta::specta]
 fn wsl_path(path: String, mode: Option<WslPathMode>) -> Result<String, String> {
-    if !cfg(windows) {
+    if !cfg!(windows) {
         return Ok(path);
     }
 

+ 8 - 5
packages/desktop/src-tauri/src/linux_display.rs

@@ -14,7 +14,7 @@ struct DisplayConfig {
 }
 
 fn dir() -> Option<PathBuf> {
-    Some(dirs::data_dir()?.join("ai.opencode.desktop"))
+  Some(dirs::data_dir()?.join(if cfg!(debug_assertions) { "ai.opencode.desktop.dev" } else { "ai.opencode.desktop" }))
 }
 
 fn path() -> Option<PathBuf> {
@@ -22,10 +22,13 @@ fn path() -> Option<PathBuf> {
 }
 
 pub fn read_wayland() -> Option<bool> {
-    let path = path()?;
-    let raw = std::fs::read_to_string(path).ok()?;
-    let config = serde_json::from_str::<DisplayConfig>(&raw).ok()?;
-    config.wayland
+    let raw = std::fs::read_to_string(dbg!(path()?)).ok()?;
+    let root = serde_json::from_str::<serde_json::Value>(&raw)
+        .ok()?
+        .get(LINUX_DISPLAY_CONFIG_KEY).cloned()?;
+    serde_json::from_value::<DisplayConfig>(root)
+        .ok()?
+        .wayland
 }
 
 pub fn write_wayland(app: &AppHandle, value: bool) -> Result<(), String> {