diff --git a/pkgs/games/r2modman/default.nix b/pkgs/games/r2modman/default.nix index c7c8d6a10768..4e5096eb96f8 100644 --- a/pkgs/games/r2modman/default.nix +++ b/pkgs/games/r2modman/default.nix @@ -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 diff --git a/pkgs/games/r2modman/steam-launch-fix.patch b/pkgs/games/r2modman/steam-launch-fix.patch new file mode 100644 index 000000000000..4a52c8fdb359 --- /dev/null +++ b/pkgs/games/r2modman/steam-launch-fix.patch @@ -0,0 +1,21 @@ +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 { + + 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) { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 10f61b2cd66c..e97e9ca1cf5b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -38442,7 +38442,10 @@ with pkgs; r2mod_cli = callPackage ../games/r2mod_cli { }; - r2modman = callPackage ../games/r2modman { }; + r2modman = callPackage ../games/r2modman { + # Electron 26 has regressions making applications unusable. + electron = electron_25; + }; racer = callPackage ../games/racer { };