aboutsummaryrefslogtreecommitdiff
path: root/libs/nak_ffi/include
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-15 05:34:27 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-15 05:34:27 -0500
commit1b4dd1b718d543a2b6bf29e3209629542744babf (patch)
tree79df56b54be58a26a3aeeaab80a71ad690bdce03 /libs/nak_ffi/include
parent0e21ca3c04c25090ed87f076126829bf9ef4d5b7 (diff)
Add Steam Linux Runtime (SLR) support + fix Use Proton default
Steam Linux Runtime: - New Rust module (libs/nak/src/slr.rs): download SteamLinuxRuntime_sniper from repo.steampowered.com, SHA256 verification, BUILD_ID update checks - nak_ffi exports: nak_slr_is_installed, nak_slr_get_run_script, nak_download_slr - ProtonLauncher: wraps Proton launch inside SLR pressure-vessel container when enabled (run -- proton waitforexitandrun game.exe) - Instance Manager: SLR checkbox (default on) beside Steam DRM checkbox - Main window: pre-check downloads SLR before launch if needed - Proton settings tab: "Download Steam Linux Runtime" button - spawn.cpp: reads fluorine/use_slr per-instance INI key - Logs "Final command:" showing full assembled launch command Bug fixes: - Fix Use Proton off by default for plugin executables (executableslist.cpp) - Fix Use Proton off by default for file tree right-click (filetree.cpp) - Fix Fedora 43 Qt platform plugin crash: explicit QT_QPA_PLATFORM_PLUGIN_PATH - Add Qt6::Concurrent to CMakeLists for QtConcurrent background downloads Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/nak_ffi/include')
-rw-r--r--libs/nak_ffi/include/nak_ffi.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/libs/nak_ffi/include/nak_ffi.h b/libs/nak_ffi/include/nak_ffi.h
index e1a9185..7a40863 100644
--- a/libs/nak_ffi/include/nak_ffi.h
+++ b/libs/nak_ffi/include/nak_ffi.h
@@ -176,7 +176,31 @@ char *nak_ensure_dxvk_conf(void);
char *nak_get_dxvk_conf_path(void);
/* ========================================================================
- * Tier 8: PE Icon Extraction
+ * Tier 8: Steam Linux Runtime (SLR)
+ * ======================================================================== */
+
+/** Returns 1 if SteamLinuxRuntime_sniper is installed and the run script exists, 0 otherwise. */
+int nak_slr_is_installed(void);
+
+/** Get the path to the SLR run script.
+ * Returns NULL if SLR is not installed.
+ * Caller must free with nak_string_free(). */
+char *nak_slr_get_run_script(void);
+
+/** Download and install SteamLinuxRuntime_sniper from Valve's repo (~180 MB).
+ * Skips if already at the latest version (checked via BUILD_ID).
+ * progress_cb: 0.0..1.0 during download (may be NULL).
+ * status_cb: human-readable status strings (may be NULL).
+ * cancel_flag: pointer to int, set non-zero to cancel (may be NULL).
+ * Returns NULL on success, or error message (free with nak_string_free). */
+char *nak_download_slr(
+ NakProgressCallback progress_cb,
+ NakStatusCallback status_cb,
+ const int *cancel_flag
+);
+
+/* ========================================================================
+ * Tier 9: PE Icon Extraction
* ======================================================================== */
/** Result of icon extraction */