Merge pull request #132 from outis1one/claude/zealous-heisenberg-8ylloi

fix(kyber-linux): fix prefix path — use numeric appid so Steam finds it
This commit is contained in:
Outis
2026-06-23 19:18:38 -04:00
committed by GitHub
+26 -7
View File
@@ -59,8 +59,8 @@
set -euo pipefail set -euo pipefail
KYBER_INSTALLER="${1:-$HOME/Downloads/KyberLauncher.exe}" KYBER_INSTALLER="${1:-$HOME/Downloads/KyberLauncher.exe}"
KYBER_COMPAT_ID="kyber" # Wine prefix name under compatdata/
KYBER_APPID="9900000001" # non-Steam shortcut appid KYBER_APPID="9900000001" # non-Steam shortcut appid
KYBER_COMPAT_ID="$KYBER_APPID" # prefix dir must match appid for Steam to find it
echo "=== Kyber Launcher — Native Linux Steam Setup ===" echo "=== Kyber Launcher — Native Linux Steam Setup ==="
echo "" echo ""
@@ -157,6 +157,16 @@ echo ""
echo "[1/7] Installing Kyber into Wine prefix..." echo "[1/7] Installing Kyber into Wine prefix..."
KYBER_PFX="$STEAM_HOME/steamapps/compatdata/$KYBER_COMPAT_ID" KYBER_PFX="$STEAM_HOME/steamapps/compatdata/$KYBER_COMPAT_ID"
OLD_PFX="$STEAM_HOME/steamapps/compatdata/kyber"
# Migrate old 'kyber' prefix to the numeric appid directory Steam expects
if [ -d "$OLD_PFX" ] && [ ! -d "$KYBER_PFX" ]; then
echo " Migrating prefix: compatdata/kyber → compatdata/$KYBER_COMPAT_ID"
mv "$OLD_PFX" "$KYBER_PFX"
elif [ -d "$OLD_PFX" ] && [ -d "$KYBER_PFX" ]; then
echo " Removing old compatdata/kyber (numeric prefix already exists)..."
rm -rf "$OLD_PFX"
fi
export STEAM_COMPAT_DATA_PATH="$KYBER_PFX" export STEAM_COMPAT_DATA_PATH="$KYBER_PFX"
export STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_HOME" export STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_HOME"
@@ -328,14 +338,23 @@ int WINAPI mainCRTStartup(void) {
ExitProcess(code); ExitProcess(code);
} }
CEOF CEOF
x86_64-w64-mingw32-gcc -O2 -ffreestanding -nostdlib \ if x86_64-w64-mingw32-gcc -O2 -ffreestanding -nostdlib \
-mno-stack-arg-probe \ -mno-stack-arg-probe \
-e mainCRTStartup -o "$SHIM_EXE" "$SHIM_C" \ -e mainCRTStartup -o "$SHIM_EXE" "$SHIM_C" \
-lkernel32 -lshell32 \ -lkernel32 -lshell32; then
&& cp "$CMD_SHIM" "$CMD_REAL" \ # If cmd.exe is a symlink, copy the real file out first,
&& cp "$SHIM_EXE" "$CMD_SHIM" \ # then remove the symlink so we replace only this prefix.
&& echo " cmd shim installed." \ if [ -L "$CMD_SHIM" ]; then
|| echo " WARNING: cmd shim compile failed — login may not work." cp "$(readlink -f "$CMD_SHIM")" "$CMD_REAL"
rm "$CMD_SHIM"
else
cp "$CMD_SHIM" "$CMD_REAL"
fi
cp "$SHIM_EXE" "$CMD_SHIM"
echo " cmd shim installed ($(stat -c%s "$CMD_SHIM") bytes)."
else
echo " WARNING: cmd shim compile failed — login may not work."
fi
rm -f "$SHIM_C" "$SHIM_EXE" rm -f "$SHIM_C" "$SHIM_EXE"
else else
echo " WARNING: mingw-w64 not found. Install it and re-run:" echo " WARNING: mingw-w64 not found. Install it and re-run:"