From b3bb3133d74b80bd7a79e9459d5699a5bc3b1ce3 Mon Sep 17 00:00:00 2001
From: DecDuck
Date: Thu, 26 Feb 2026 01:59:29 +0000
Subject: [PATCH] Fix options modal and launcher on Windows (#189)
* fix: proton paths fetch on windows
* fix: fetch_proton_paths on windows
* fix: native launcher
---
.../main/components/GameOptions/Launch.vue | 190 +-----------------
.../components/GameOptions/ProtonSelector.vue | 189 +++++++++++++++++
.../src-tauri/process/src/process_handlers.rs | 2 +-
.../src-tauri/process/src/process_manager.rs | 3 +-
4 files changed, 193 insertions(+), 191 deletions(-)
create mode 100644 desktop/main/components/GameOptions/ProtonSelector.vue
diff --git a/desktop/main/components/GameOptions/Launch.vue b/desktop/main/components/GameOptions/Launch.vue
index 69101fe0..f7aac792 100644
--- a/desktop/main/components/GameOptions/Launch.vue
+++ b/desktop/main/components/GameOptions/Launch.vue
@@ -22,203 +22,17 @@
>
-
- Proton override
-
-
- {{ currentProtonPath.name }} ({{ currentProtonPath.path }})
- No override configured
-
-
-
-
-
-
-
- Use global default
-
-
-
-
-
-
-
- Auto-discovered
-
-
-
- {{ proton.name }} ({{ proton.path }})
-
-
-
-
-
-
-
- No auto-discovered layers.
-
-
- Manually added
-
-
-
- {{ proton.name }} ({{ proton.path }})
-
-
-
-
-
-
-
- No manually added layers.
-
-
-
-
-
- Override the Proton layer used to launch this game. You can add or
- remove your custom Proton layer paths in
-
-
- Settings .
-
-
+
diff --git a/desktop/main/components/GameOptions/ProtonSelector.vue b/desktop/main/components/GameOptions/ProtonSelector.vue
new file mode 100644
index 00000000..39806d3a
--- /dev/null
+++ b/desktop/main/components/GameOptions/ProtonSelector.vue
@@ -0,0 +1,189 @@
+
+
+ Proton override
+
+
+ {{ currentProtonPath.name }} ({{ currentProtonPath.path }})
+ No override configured
+
+
+
+
+
+
+
+ Use global default
+
+
+
+
+
+
+
+ Auto-discovered
+
+
+
+ {{ proton.name }} ({{ proton.path }})
+
+
+
+
+
+
+
+ No auto-discovered layers.
+
+
+ Manually added
+
+
+
+ {{ proton.name }} ({{ proton.path }})
+
+
+
+
+
+
+
+ No manually added layers.
+
+
+
+
+
+ Override the Proton layer used to launch this game. You can add or remove
+ your custom Proton layer paths in
+
+
+ Settings .
+
+
+
+
+
diff --git a/desktop/src-tauri/process/src/process_handlers.rs b/desktop/src-tauri/process/src/process_handlers.rs
index 91b8f3e4..52d8495f 100644
--- a/desktop/src-tauri/process/src/process_handlers.rs
+++ b/desktop/src-tauri/process/src/process_handlers.rs
@@ -17,7 +17,7 @@ impl ProcessHandler for NativeGameLauncher {
_current_dir: &str,
_database: &Database,
) -> Result {
- Ok(format!("\"{}\"", launch_command))
+ Ok(launch_command)
}
fn valid_for_platform(&self, _db: &Database, _target: &Platform) -> bool {
diff --git a/desktop/src-tauri/process/src/process_manager.rs b/desktop/src-tauri/process/src/process_manager.rs
index 7f670b4f..c1e7b097 100644
--- a/desktop/src-tauri/process/src/process_manager.rs
+++ b/desktop/src-tauri/process/src/process_manager.rs
@@ -276,7 +276,7 @@ impl ProcessManager<'_> {
debug!(
"Launching process {:?} with version {:?}",
&game_id,
- db_lock.applications.game_versions.get(&game_id)
+ db_lock.applications.game_versions.get(version_name)
);
let game_version = db_lock
@@ -285,7 +285,6 @@ impl ProcessManager<'_> {
.get(version_name)
.ok_or(ProcessError::InvalidVersion)?;
- // TODO: refactor this path with open_process_logs
let game_log_folder = &self.get_log_dir(game_id);
create_dir_all(game_log_folder)?;