Skip to main content

Steam: Mehrere (Steam-fremde) Spiele gleichzeitig starten und stoppen

Einleitung

Dovetail Games hat mit der Train Sim World-Reihe einen umfangreichen Zugsimulator entwickelt, bei dem es jedoch an manchen Funktionen mangelt. So fehlt z.B. der elektronische Buchfahrplan in deutschen Führerständen oder ein direkter support für Controller. Für beides hat die Community selbst Lösungen entwickelt. Über das Tool online-EBuLa habe ich bereits in einem vorherigen Post geschrieben und erklärt, wie man es in Verbindung mit Linux nutzen kann. Zusätzlich nutze ich die TSW Controller App, um die Züge mit meinem HOTAS steuern zu können.

Das sind jetzt allerdings drei verschiedene Anwendungen, die ich nacheinander manuell starten muss. Um das zu automatisieren, nutze ich ein Skript, das automatisch beim Start meines Steam-Spiels ausgeführt wird. Dieses Skript ist für Linux geschrieben, aber die Funktionsweise ließe sich prinzipiell auch auf Windows übertragen.

Skript erstellen

Erstelle zunächst in eine Datei in einem beliebigen Ordner

touch script.sh

Füge folgendes in dein Skript ein:

#!/bin/bash

# Starte TswEbulaClient und tswcontrollerapp im Hintergrund und speichere jeweils die Prozess-ID
steam steam://rungameid/12413616758731046912 &
PROTON_GAME_PID=$!

/pfad/zur/binary/tswcontrollerapp_linux_amd64_binary &
CONTROLLER_PID=$!

# Starte das eigentliche Steam-Spiel und speichere den Exit-Code, sobald das Spiel beendet wird
"$@"
GAME_EXIT_CODE=$?

# Beende TswEbulaClient und tswcontrollerapp anhand ihrer Prozess-IDs und anhand ihrer Namen (Redundanz)
kill $PROTON_GAME_PID 2>/dev/null
kill $CONTROLLER_PID 2>/dev/null

killall TswEbulaClient.exe 2>/dev/null
killall tswcontrollerapp_linux_amd64_binary 2>/dev/null

# Beende das Skript und gib den Exit-Code des Steam-Spiels aus
exit $GAME_EXIT_CODE

Stelle sicher, dass das Skript ausführbar ist:

sudo chmod +x script.sh

Skript anpassen

Die Zahlenfolge im Befehl steam steam://rungameid/12413616758731046912 entspricht der App-ID des Steam-Spiels, das du damit starten willst (nicht das "Hauptspiel", sondern das Programm, das mit dem Hautpspiel gestartet werden soll). Du kannst sie für jedes game auf steamdb.info oder in den Spieleinstellung (Steam: Spiel>Rechtsklick>Eigenschaften>Updates) finden.

Für Steam-fremde Spiele, die du zu Steam hinzugefügt hast, um die Proton-Kompatibilitätsschicht zu nutzen, kannst du die App-ID folgendermaßen herausfinden:

  1. In der Steam-Bibliothek: Steam-fremdes Spiel>Rechtsklick>Verwalten>Desktop-Verknüpfungen hinzufügen
  2. Im Desktop-Ordner ist nun eine neue .desktop Datei. In dieser ist die App-ID enthalten. Nachdem du sie kopiert hast, kannst du die Desktop-Verknüpfung löschen.

Hinweis: Jedes Mal, wenn ein Programm erneut als Steam-fremdes Spiel hinzugefügt wird, wird eine neue einzigartige App-ID generiert.

Mit dem Skript kannst du auch Programme starten, die nativ unter Linux laufen, wie z.B. die TSW Controller App.

Skript zu den Startoptionen hinzufügen

Gib das Skript nun folgendermaßen in die Startoptionen des Spiels ein:

Steam: Spiel>Rechtsklick>Eigenschaften>Allgemein>Startoptionen

"/path/to/your/script.sh" %command% -other_arguments 

WICHTIG: Der Pfad des Skripts mit dem %command% muss an erster Stelle stehen. Danach können weitere Argumente/Startoptionen folgen.

Wenn du nun das Spiel startest, wird automatisch das Skript ausgeführt und alle angegebenen Programme werden gestartet. Sobald du das Spiel schließt, werden auch die anderen Programme automatisch geschlossen.