diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-15 05:34:27 -0500 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-15 05:34:27 -0500 |
| commit | 1b4dd1b718d543a2b6bf29e3209629542744babf (patch) | |
| tree | 79df56b54be58a26a3aeeaab80a71ad690bdce03 /libs/nak_ffi/include | |
| parent | 0e21ca3c04c25090ed87f076126829bf9ef4d5b7 (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.h | 26 |
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 */
|
