From b59a8d0bb0f5a7b0af7746a04d1fc0a4569c456e Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Tue, 19 May 2026 14:09:02 -0400 Subject: [PATCH] Add Battle.net installer --- applications/battlenet.desktop | 11 ++++ applications/icons/Battle.net.png | Bin 0 -> 10076 bytes bin/omarchy-install-gaming-battlenet | 91 +++++++++++++++++++++++++++ bin/omarchy-launch-battlenet | 48 ++++++++++++++ bin/omarchy-remove-gaming-battlenet | 39 ++++++++++++ default/hypr/apps/battlenet.lua | 16 +++++ default/omarchy/omarchy-menu.jsonc | 8 ++- 7 files changed, 210 insertions(+), 3 deletions(-) create mode 100644 applications/battlenet.desktop create mode 100644 applications/icons/Battle.net.png create mode 100755 bin/omarchy-install-gaming-battlenet create mode 100755 bin/omarchy-launch-battlenet create mode 100755 bin/omarchy-remove-gaming-battlenet create mode 100644 default/hypr/apps/battlenet.lua diff --git a/applications/battlenet.desktop b/applications/battlenet.desktop new file mode 100644 index 00000000..ebd83692 --- /dev/null +++ b/applications/battlenet.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=Battle.net +GenericName=Game Launcher +Comment=Blizzard game launcher (umu-launcher + GE-Proton) +Exec=omarchy-launch-battlenet +Icon=Battle.net +Terminal=false +Categories=Game; +StartupNotify=true +StartupWMClass=battle.net.exe diff --git a/applications/icons/Battle.net.png b/applications/icons/Battle.net.png new file mode 100644 index 0000000000000000000000000000000000000000..a18e41c7d804754864a0b799dbc94586a37d3f4a GIT binary patch literal 10076 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

HXj+m% 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 S4IGyP?%&hDTdZam^8W!l?mLeF literal 0 HcmV?d00001 diff --git a/bin/omarchy-install-gaming-battlenet b/bin/omarchy-install-gaming-battlenet new file mode 100755 index 00000000..6283b3dc --- /dev/null +++ b/bin/omarchy-install-gaming-battlenet @@ -0,0 +1,91 @@ +#!/bin/bash + +# omarchy:summary=Install Battle.net standalone via umu-launcher + GE-Proton (no Steam, no Lutris, no Heroic). +# omarchy:requires-sudo=true + +set -e + +PREFIX="$HOME/Games/battlenet" +LAUNCHER="$PREFIX/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe" +INSTALLER_URL="https://downloader.battle.net/download/getInstallerForGame?os=win&gameProgram=BATTLENET_APP&version=Live" + +echo "Installing Battle.net..." + +omarchy-pkg-add umu-launcher +omarchy-install-gaming-gpu-lib32 + +# Detect a half-finished prefix from a closed/crashed previous run and offer +# to wipe it before trying again. Battle.net's installer isn't idempotent. +if [[ -d $PREFIX && ! -f $LAUNCHER ]]; then + echo + echo "Found a partial Battle.net install at $PREFIX (no Launcher.exe)." + echo "Battle.net's installer can't resume from this state." + if gum confirm "Wipe the partial prefix and start fresh?"; then + pkill -f "$PREFIX" 2>/dev/null || true + sleep 1 + rm -rf "$PREFIX" + else + echo "Aborting. Re-run when ready to wipe." + exit 1 + fi +fi + +mkdir -p "$PREFIX" + +export WINEPREFIX="$PREFIX" +export PROTONPATH=GE-Proton +export GAMEID=umu-battlenet +export PROTON_VERB=run + +if [[ -f "$LAUNCHER" ]]; then + echo "Battle.net is already installed at $PREFIX." + launched_installer=0 +else + cache_dir="$HOME/.cache/omarchy" + mkdir -p "$cache_dir" + installer="$cache_dir/Battle.net-Setup.exe" + + echo + echo "Downloading Battle.net installer..." + curl --fail --location --retry 3 "$INSTALLER_URL" --output "$installer" + + cat <<'EOF' + +Launching the Battle.net setup wizard. Click through it normally — the +default install path is fine. When it finishes, Battle.net will be in your +app launcher. + +EOF + + log="/tmp/omarchy-battlenet-installer.log" + setsid -f sh -c "umu-run '$installer' >'$log' 2>&1" /dev/null 2>&1 + echo "Installer log: $log" + launched_installer=1 +fi + +mkdir -p "$HOME/.local/share/applications" "$HOME/.local/share/icons/hicolor/48x48/apps" +install -m 644 "$HOME/.local/share/omarchy/applications/battlenet.desktop" \ + "$HOME/.local/share/applications/battlenet.desktop" +install -m 644 "$HOME/.local/share/omarchy/applications/icons/Battle.net.png" \ + "$HOME/.local/share/icons/hicolor/48x48/apps/Battle.net.png" +gtk-update-icon-cache "$HOME/.local/share/icons/hicolor" &>/dev/null || true +update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true + +if (( launched_installer )); then + cat <&2 + echo "Try: omarchy-launch-battlenet --help" >&2 + exit 1 + ;; + esac +done + +if [[ ! -f "$LAUNCHER" ]]; then + echo "Battle.net is not installed. Run omarchy-install-gaming-battlenet first." >&2 + exit 1 +fi + +env_args=( + WINEPREFIX="$PREFIX" + PROTONPATH=GE-Proton + GAMEID=umu-battlenet + PROTON_VERB=run +) +(( with_mangohud )) && env_args+=(MANGOHUD=1) + +env "${env_args[@]}" umu-run "$LAUNCHER" diff --git a/bin/omarchy-remove-gaming-battlenet b/bin/omarchy-remove-gaming-battlenet new file mode 100755 index 00000000..6b311b41 --- /dev/null +++ b/bin/omarchy-remove-gaming-battlenet @@ -0,0 +1,39 @@ +#!/bin/bash + +# omarchy:summary=Remove Battle.net, its Proton prefix, installed games, and desktop entry. + +set -e + +PREFIX="$HOME/Games/battlenet" + +# Stop any running Battle.net / wine processes tied to this prefix. +pkill -f "$PREFIX" 2>/dev/null || true +sleep 1 + +rm -rf "$PREFIX" +rm -f "$HOME/.local/share/applications/battlenet.desktop" +rm -f "$HOME/.local/share/icons/hicolor/48x48/apps/Battle.net.png" +rm -f "$HOME/.cache/omarchy/Battle.net-Setup.exe" +gtk-update-icon-cache "$HOME/.local/share/icons/hicolor" &>/dev/null || true +update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true + +echo +echo "Battle.net and its Proton prefix at $PREFIX have been removed." + +if omarchy-pkg-present umu-launcher; then + echo + read -rp "Also remove umu-launcher? It's only used by this command. [y/N] " reply + if [[ $reply =~ ^[Yy]$ ]]; then + omarchy-pkg-drop umu-launcher + fi +fi + +PROTON_DIR="$HOME/.local/share/Steam/compatibilitytools.d" +if compgen -G "$PROTON_DIR/GE-Proton*" >/dev/null; then + echo + read -rp "Also remove GE-Proton runtimes downloaded by umu? [y/N] " reply + if [[ $reply =~ ^[Yy]$ ]]; then + rm -rf "$PROTON_DIR"/GE-Proton* + rm -rf "$HOME/.local/share/umu" + fi +fi diff --git a/default/hypr/apps/battlenet.lua b/default/hypr/apps/battlenet.lua new file mode 100644 index 00000000..13231d07 --- /dev/null +++ b/default/hypr/apps/battlenet.lua @@ -0,0 +1,16 @@ +-- Battle.net launches under Proton; all its windows share class steam_app_battlenet. + +-- The actual launcher: float-centered. +o.window({ class = "^steam_app_battlenet$", title = "^Battle\\.net$" }, { + float = true, + center = true, + size = { 1280, 800 }, +}) + +-- Installer: drop decorations and backdrop blur/shadow so the Blizzard chrome +-- isn't framed by the WM. +o.window({ class = "^steam_app_battlenet$", title = "^Battle\\.net Setup$" }, { + decorate = false, + no_blur = true, + no_shadow = true, +}) diff --git a/default/omarchy/omarchy-menu.jsonc b/default/omarchy/omarchy-menu.jsonc index 7b626f10..ae420f89 100644 --- a/default/omarchy/omarchy-menu.jsonc +++ b/default/omarchy/omarchy-menu.jsonc @@ -179,7 +179,7 @@ "install.terminal": {"icon":"","label":"Terminal","keywords":"emulator"}, "install.browser": {"icon":"","label":"Browser","keywords":"web"}, "install.ai": {"icon":"󱚤","label":"AI","keywords":"dictation ollama lm studio crush"}, - "install.gaming": {"icon":"","label":"Gaming","keywords":"steam retroarch minecraft lutris heroic"}, + "install.gaming": {"icon":"","label":"Gaming","keywords":"steam battlenet retroarch minecraft lutris heroic blizzard"}, "install.windows": {"icon":"󰍲","label":"Windows","keywords":"vm","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-windows-vm install'"}, "install.browser.chrome": {"icon":"","label":"Chrome","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser chrome'"}, "install.browser.edge": {"icon":"","label":"Edge","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser edge'"}, @@ -215,7 +215,8 @@ "install.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-xbox-cloud"}, "install.gaming.xbox-controller": {"icon":"󰂯","label":"Xbox Controller","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-xbox-controllers"}, "install.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-moonlight"}, - "install.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-lutris"}, + "install.gaming.battlenet": {"icon":"","label":"Battle.net","keywords":"blizzard wow overwatch diablo","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-battlenet"}, + "install.gaming.lutris": {"icon":"","label":"Lutris","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-lutris"}, "install.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-heroic"}, "install.gaming.retro-launcher": {"icon":"󰯉","label":"RetroArch Game Launcher","action":"omarchy-games-retro-install"}, "install.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env ruby'"}, @@ -268,7 +269,8 @@ "remove.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-xbox-cloud"}, "remove.gaming.xbox-controller": {"icon":"󰖺","label":"Xbox Controller (󰂯)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-xbox-controllers"}, "remove.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-moonlight"}, - "remove.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-lutris"}, + "remove.gaming.battlenet": {"icon":"","label":"Battle.net","when":"[[ -d $HOME/Games/battlenet ]]","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-battlenet"}, + "remove.gaming.lutris": {"icon":"","label":"Lutris","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-lutris"}, "remove.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-heroic"}, "remove.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env ruby'"}, "remove.development.javascript": {"icon":"","label":"JavaScript","keywords":"node bun deno"},