Files
local_machine/scripts/games/gog/fix-ja3-crossover-mouse.sh
ahauimix 1938b7c743 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>
2026-06-01 08:12:19 +03:00

78 lines
2.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Курсор JA3 в CrossOver (Retina / HiDPI).
# Профили (JA3_MOUSE_PROFILE):
# legacy — RetinaMode=n (полный ход по Y; возможен сдвиг клика) — default
# retina-lite — RetinaMode=y без LogPixels (если legacy смещает, но нет клипа)
# retina — RetinaMode=y + LogPixels=192 (клип на середине экрана — не default)
set -euo pipefail
GOG_DIR="$(cd "$(dirname "$0")" && pwd)"
CX="/Applications/CrossOver.app/Contents/SharedSupport/CrossOver"
CX_BOTTLE="JA3-GOG"
CX_DIR="${HOME}/Library/Application Support/CrossOver/Bottles/${CX_BOTTLE}"
[[ -d "${CX}" ]] || {
echo "❌ CrossOver не установлен"
exit 1
}
PROFILE="${JA3_MOUSE_PROFILE:-legacy}"
WREG() { "${CX}/bin/wine" --bottle "${CX_BOTTLE}" "$@"; }
case "${PROFILE}" in
retina)
RETINA="y"
SET_DPI=1
DPI="${JA3_LOG_PIXELS:-192}"
SET_WIN8=1
;;
retina-lite)
RETINA="y"
SET_DPI=0
SET_WIN8=0
;;
legacy|*)
RETINA="n"
SET_DPI=0
SET_WIN8=0
PROFILE="legacy"
;;
esac
WREG reg add 'HKCU\Software\Wine\Mac Driver' /v RetinaMode /t REG_SZ /d "${RETINA}" /f >/dev/null
if [[ "${SET_DPI}" == "1" ]]; then
WREG reg add 'HKCU\Control Panel\Desktop' /v LogPixels /t REG_DWORD /d "${DPI}" /f >/dev/null
else
WREG reg delete 'HKCU\Control Panel\Desktop' /v LogPixels /f >/dev/null 2>&1 || true
fi
if [[ "${SET_WIN8}" == "1" ]]; then
WREG reg add 'HKCU\Control Panel\Desktop' /v Win8DpiScaling /t REG_DWORD /d 1 /f >/dev/null
else
WREG reg delete 'HKCU\Control Panel\Desktop' /v Win8DpiScaling /f >/dev/null 2>&1 || true
fi
CONF="${CX_DIR}/cxbottle.conf"
if [[ -f "${CONF}" ]] && ! grep -q 'SDL_VIDEO_MAC_FULLSCREEN_SPACES' "${CONF}"; then
sed -i '' '/^\[EnvironmentVariables\]/a\
"SDL_VIDEO_MAC_FULLSCREEN_SPACES" = "0"
' "${CONF}" 2>/dev/null || true
fi
echo "OK: profile=${PROFILE} RetinaMode=${RETINA}${CX_BOTTLE}"
echo " Перезапуск: bash ${GOG_DIR}/reset-ja3-crossover.sh && bash ${GOG_DIR}/run-ja3-crossover.sh"
case "${PROFILE}" in
legacy)
echo " Если клик смещён: JA3_MOUSE_PROFILE=retina-lite bash ${GOG_DIR}/fix-ja3-crossover-mouse.sh"
echo " Без перезапуска: верхний левый угол окна = угол экрана."
;;
retina-lite)
echo " Если смещение осталось: JA3_MOUSE_PROFILE=legacy …"
echo " Если клип на середине: JA3_MOUSE_PROFILE=legacy …"
;;
retina)
echo " ⚠️ retina+LogPixels=192 часто режет курсор на середине экрана."
echo " Если так: JA3_MOUSE_PROFILE=legacy bash ${GOG_DIR}/fix-ja3-crossover-mouse.sh"
;;
esac