From 0fd1dc4fce5cbb42ec747327aaa28376ee1c649c Mon Sep 17 00:00:00 2001 From: The412Banner Date: Sat, 26 Sep 2026 05:15:36 -0400 Subject: [PATCH] Proton wrappers: run the components check for non-Steam shortcuts too - decide by the game's own prefix rather than the app id, which is 0 for a shortcut --- .../usr/local/bin/bannerlator-steam-compat | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tools/linuxfs/overlay/usr/local/bin/bannerlator-steam-compat b/tools/linuxfs/overlay/usr/local/bin/bannerlator-steam-compat index d74c6174d..4abca5b52 100755 --- a/tools/linuxfs/overlay/usr/local/bin/bannerlator-steam-compat +++ b/tools/linuxfs/overlay/usr/local/bin/bannerlator-steam-compat @@ -88,15 +88,16 @@ bl_components() { base=$1 cm_dir="${HOME:-/root}/.local/share/bannerlator-components" cm_list="$cm_dir/desired.tsv" - # A real game launch only: the verb the client starts a game with and a non-zero app id. Every - # other run - above all the client's own probes right after login, app id 0 - is left exactly as - # it was: with this check running through them, the client segfaulted (rc 139) within seconds of - # starting its probes, four sessions out of four. + # A real game launch only: the verb the client starts a game with and the game's own prefix. Every + # other run - above all the client's own probes right after login, which all share compatdata/0 - + # is left exactly as it was: with this check running through them, the client segfaulted (rc 139) + # within seconds of starting its probes, four sessions out of four. The prefix decides rather than + # the app id because a non-Steam shortcut launches with app id 0 but still gets a prefix of its own. [ "${verb:-}" = waitforexitandrun ] || return 0 - cm_app="${STEAM_COMPAT_APP_ID:-${SteamAppId:-0}}" - case "$cm_app" in ''|0) return 0 ;; esac + case "${STEAM_COMPAT_DATA_PATH:-}" in ''|*/compatdata/0|*/compatdata/0/|*/compatdata/0-*) return 0 ;; esac [ -f "$cm_list" ] || return 0 - case "${STEAM_COMPAT_DATA_PATH:-}" in */compatdata/0|*/compatdata/0/|*/compatdata/0-*) return 0 ;; esac + cm_app=${STEAM_COMPAT_DATA_PATH%/} + cm_app=${cm_app##*/} cm_tool=${base##*/} cm_build=$(awk 'NR == 1 { print $2 }' "$base/version" 2>/dev/null) cm_fixed=0