From 1b4dd1b718d543a2b6bf29e3209629542744babf Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Sun, 15 Mar 2026 05:34:27 -0500 Subject: 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 --- libs/nak_ffi/include/nak_ffi.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'libs/nak_ffi/include') 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 */ -- cgit v1.3.1