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 @@ + + + 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)?;