feat: Add scripts and systemd services for SteamOS session management and game launching
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
LOGFILE="$HOME/.local/logs/retroarch-genesis.log"
|
||||
|
||||
log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOGFILE"; }
|
||||
RETROARCH_HOME="$HOME/.local/share/Steam/steamapps/common/RetroArch"
|
||||
if [ ! -d "$RETROARCH_HOME" ]; then
|
||||
log "ERROR: RetroArch directory not found at $RETROARCH_HOME, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
RETROARCH_BIN="$RETROARCH_HOME/retroarch"
|
||||
RETROARCH_CORE=genesis_plus_gx_libretro.so
|
||||
if [ ! -f "$RETROARCH_BIN" ] || [ ! -f "$RETROARCH_HOME/cores/$RETROARCH_CORE" ]; then
|
||||
log "ERROR: retroarch or core not found, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
log "Launching RetroArch: $RETROARCH_BIN -L \"$RETROARCH_HOME/cores/$RETROARCH_CORE\" \"${@}\""
|
||||
cd "$RETROARCH_HOME"
|
||||
$HOME/.steam/steam/ubuntu12_32/steam-runtime/run.sh "$RETROARCH_BIN" -L "$RETROARCH_HOME/cores/$RETROARCH_CORE" "${@}" >>"$LOGFILE"
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
LOGFILE="$HOME/.local/logs/retroarch-ppsspp.log"
|
||||
|
||||
log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOGFILE"; }
|
||||
RETROARCH_HOME="$HOME/.local/share/Steam/steamapps/common/RetroArch"
|
||||
if [ ! -d "$RETROARCH_HOME" ]; then
|
||||
log "ERROR: RetroArch directory not found at $RETROARCH_HOME, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
RETROARCH_BIN="$RETROARCH_HOME/retroarch"
|
||||
RETROARCH_CORE=ppsspp_libretro.so
|
||||
if [ ! -f "$RETROARCH_BIN" ] || [ ! -f "$RETROARCH_HOME/cores/$RETROARCH_CORE" ]; then
|
||||
log "ERROR: retroarch or core not found, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
log "Launching RetroArch: $RETROARCH_BIN -L \"$RETROARCH_HOME/cores/$RETROARCH_CORE\" \"${@}\""
|
||||
"$RETROARCH_BIN" -L "$RETROARCH_HOME/cores/$RETROARCH_CORE" "${@}" >>"$LOGFILE"
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
LOGFILE="$HOME/.local/logs/rpcs3.log"
|
||||
|
||||
log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOGFILE"; }
|
||||
|
||||
RPCS_BIN="$(command -v rpcs3 || true)"
|
||||
if [ -z "$RPCS_BIN" ]; then
|
||||
log "ERROR: rpcs3 not found in PATH"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
log "Launching RPCS3: $RPCS_BIN \"${@}\""
|
||||
"$RPCS_BIN" --no-gui --fullscreen "${@}" >>"$LOGFILE"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
LOGFILE="$HOME/.local/logs/retroarch-snes.log"
|
||||
|
||||
log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOGFILE"; }
|
||||
RETROARCH_HOME="$HOME/.local/share/Steam/steamapps/common/RetroArch"
|
||||
if [ ! -d "$RETROARCH_HOME" ]; then
|
||||
log "ERROR: RetroArch directory not found at $RETROARCH_HOME, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
RETROARCH_BIN="$RETROARCH_HOME/retroarch"
|
||||
RETROARCH_CORE=mesen-s_libretro.so.so
|
||||
if [ ! -f "$RETROARCH_BIN" ] || [ ! -f "$RETROARCH_HOME/cores/$RETROARCH_CORE" ]; then
|
||||
log "ERROR: retroarch or core not found, install it via Steam"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
log "Launching RetroArch: $RETROARCH_BIN -L \"$RETROARCH_HOME/cores/$RETROARCH_CORE\" \"${@}\""
|
||||
cd "$RETROARCH_HOME"
|
||||
"$RETROARCH_BIN" -L "$RETROARCH_HOME/cores/$RETROARCH_CORE" "${@}" >>"$LOGFILE"
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
LOGFILE="$HOME/.local/logs/update_roms.log"
|
||||
|
||||
log() { echo "[$(date --iso-8601=seconds)] $*" | tee -a "$LOGFILE"; }
|
||||
|
||||
ROM_MANAGER_BIN="$(command -v srm || true)"
|
||||
if [ -z "$ROM_MANAGER_BIN" ]; then
|
||||
log "ERROR: srm (Steam ROM Manager) not found in PATH"
|
||||
exit 127
|
||||
fi
|
||||
log "Updating Steam ROM Manager"
|
||||
$ROM_MANAGER_BIN add >> "$LOGFILE" 2>&1 || {
|
||||
log "ERROR: Steam ROM Manager update failed"
|
||||
exit 1
|
||||
}
|
||||
log "Steam ROM Manager update completed successfully, restarting Steam service if running"
|
||||
if systemctl --user is-active --quiet steam.scope; then
|
||||
log "Restarting Steam service to apply changes"
|
||||
systemctl --user restart steam.scope
|
||||
log "Steam service restarted"
|
||||
else
|
||||
log "Steam service is not running, no need to restart"
|
||||
fi
|
||||
Reference in New Issue
Block a user