Unverified Commit 363e9382 authored by Aidan Gauland's avatar Aidan Gauland
Browse files

r2modman: fix launching Steam games

Patch r2modman to run "steam" instead of trying to directly run
"steam.sh" from the user's home directory.  This means it uses the NixOS
wrapper script, which runs Steam in the necessary FHS environment.

Fixes #240369
parent 461aa2d8
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -28,6 +28,11 @@ stdenv.mkDerivation rec {
    hash = "sha256-CXitb/b2tvTfrkFrFv4KP4WdmMg+1sDtC/s2u5ezDfI=";
  };

  patches = [
    # Make it possible to launch Steam games from r2modman.
    ./steam-launch-fix.patch
  ];

  nativeBuildInputs = [
    yarn
    fixup_yarn_lock
+21 −0
Original line number Diff line number Diff line
diff --git a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts
index ddee0e9..fc9ffca 100644
--- a/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts
+++ b/src/r2mm/launching/runners/linux/SteamGameRunner_Linux.ts
@@ -61,15 +61,9 @@ export default class SteamGameRunner_Linux extends GameRunnerProvider {
     async start(game: Game, args: string): Promise<void | R2Error> {
 
         const settings = await ManagerSettings.getSingleton(game);
-        const steamDir = await GameDirectoryResolverProvider.instance.getSteamDirectory();
-        if(steamDir instanceof R2Error) {
-            return steamDir;
-        }
-
-        LoggerProvider.instance.Log(LogSeverity.INFO, `Steam directory is: ${steamDir}`);
 
         try {
-            const cmd = `"${steamDir}/steam.sh" -applaunch ${game.activePlatform.storeIdentifier} ${args} ${settings.getContext().gameSpecific.launchParameters}`;
+            const cmd = `steam -applaunch ${game.activePlatform.storeIdentifier} ${args} ${settings.getContext().gameSpecific.launchParameters}`;
             LoggerProvider.instance.Log(LogSeverity.INFO, `Running command: ${cmd}`);
             await exec(cmd);
         } catch(err) {