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
This commit is contained in:
parent
461aa2d82f
commit
363e9382a5
|
@ -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
pkgs/games/r2modman/steam-launch-fix.patch
Normal file
21
pkgs/games/r2modman/steam-launch-fix.patch
Normal file
|
@ -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<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) {
|
Loading…
Reference in New Issue
Block a user