Expand local_machine docs and automation for connectivity, games, and ops.

Add proxy/VPN/telegram launchd and emergency runbooks; reorganize apps docs;
document JA3 CrossOver runbook and Wine troubleshooting; add GOG/HoMM game
scripts, disk cleanup guides, and gitea push-via-proxy helper. Ignore temp/.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
ahauimix
2026-06-01 08:12:19 +03:00
parent a39ef89125
commit 1938b7c743
135 changed files with 9933 additions and 388 deletions

75
scripts/games/fix-gog-auth.sh Executable file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env bash
# GOG Galaxy в Wine: логин в CEF ок, но auth.gog.com/token таймаут → сброс на пароль.
# Фиксы: IPv6 в Wine, сеть Poco/OpenSSL, CEF-флаги GOG.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# shellcheck source=config.sh
source "${SCRIPT_DIR}/config.sh"
cmd_wine_check() {
if [[ ! -x "${WINE64}" ]]; then
echo "Нет WhiskyWine: bash ${SCRIPT_DIR}/install-whiskywine-manual.sh"
exit 1
fi
}
cmd_wine_network_registry() {
export WINEPREFIX="${BOTTLE_DIR}"
echo "Wine: отключаю IPv6 DNS (частая причина зависания WinHTTP/Poco)…"
"${WINE64}" reg add 'HKCU\Software\Wine\Network' /v DnsIPv6Enabled /t REG_DWORD /d 0 /f >/dev/null 2>&1 || true
"${WINE64}" reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' \
/v DisableIPv6 /t REG_DWORD /d 1 /f >/dev/null 2>&1 || true
echo "Wine: ProxyEnable=0 (без системного прокси в bottle)…"
"${WINE64}" reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' \
/v ProxyEnable /t REG_DWORD /d 0 /f >/dev/null 2>&1 || true
}
cmd_dll_overrides() {
export WINEPREFIX="${BOTTLE_DIR}"
local key='HKCU\Software\Wine\DllOverrides'
echo "Wine: DllOverrides для OpenSSL/Poco (native)…"
for dll in libssl-1_1 libcrypto-1_1 libssl-3 libcrypto-3; do
"${WINE64}" reg add "${key}" /v "${dll}" /t REG_SZ /d native,builtin /f >/dev/null 2>&1 || true
done
}
cmd_clear_gog_webcache() {
local cache="${BOTTLE_DIR}/drive_c/ProgramData/GOG.com/Galaxy/webcache"
if [[ -d "${cache}" ]]; then
rm -rf "${cache:?}"/*
echo "Очищен webcache: ${cache}"
fi
}
cmd_update_plist() {
local ps="${BOTTLE_DIR}/Program Settings/GalaxyClient.exe.plist"
local args
args="$(homm_gog_cef_args_line)"
if [[ -f "${ps}" ]]; then
/usr/bin/plutil -replace arguments -string "${args}" "${ps}" 2>/dev/null \
|| echo " (plist вручную: ${args})"
echo "Обновлён ${ps}"
fi
}
main() {
cmd_wine_check
if ! homm_gog_exe >/dev/null; then
echo "GOG не установлен: bash ${SCRIPT_DIR}/start.sh gog-install"
exit 1
fi
cmd_wine_network_registry
cmd_dll_overrides
cmd_clear_gog_webcache
cmd_update_plist
echo ""
echo "OK. Перезапуск GOG:"
echo " bash ${SCRIPT_DIR}/start.sh gog-restart"
echo ""
echo "Если снова сброс на пароль — соберите логи:"
echo " bash ${SCRIPT_DIR}/diagnose-gog-auth.sh"
echo ""
echo "Проверка в логе после входа: НЕ должно быть «timeout … auth.gog.com/token»."
}
main "$@"