new file: .gitignore
modified: README.md
This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
|||||||
|
# Editor temp files
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Downloaded installer (no need to track)
|
||||||
|
*.exe
|
||||||
@@ -14,7 +14,6 @@ A guide for installing the Battle.net launcher on Arch Linux (2026).
|
|||||||
| **Steam + Proton-GE (non-Steam shortcut)** | People who already run Steam. | Low |
|
| **Steam + Proton-GE (non-Steam shortcut)** | People who already run Steam. | Low |
|
||||||
| **Lutris (official installer script)** | People who want a GUI game manager. | Low–Medium |
|
| **Lutris (official installer script)** | People who want a GUI game manager. | Low–Medium |
|
||||||
| **Bottles (Flatpak, Gaming environment)** | Flatpak-first setups. | Low |
|
| **Bottles (Flatpak, Gaming environment)** | Flatpak-first setups. | Low |
|
||||||
| **Manual `wine-staging` prefix** | Pure-Wine purists, non-Proton setups. | High |
|
|
||||||
|
|
||||||
If you just want it to work: use **Method 1 (umu)**. It gives you Proton-grade compatibility without Steam, and the upstream protonfix for Battle.net automatically applies the workarounds you'd otherwise have to remember.
|
If you just want it to work: use **Method 1 (umu)**. It gives you Proton-grade compatibility without Steam, and the upstream protonfix for Battle.net automatically applies the workarounds you'd otherwise have to remember.
|
||||||
|
|
||||||
@@ -74,7 +73,7 @@ sudo pacman -Syu
|
|||||||
|
|
||||||
> You do **not** need `[testing]`, `[core-testing]`, or `[multilib-testing]` enabled. The old guide told you to enable those — don't. Testing repos are for people actively helping test Arch itself and will periodically break your system.
|
> You do **not** need `[testing]`, `[core-testing]`, or `[multilib-testing]` enabled. The old guide told you to enable those — don't. Testing repos are for people actively helping test Arch itself and will periodically break your system.
|
||||||
|
|
||||||
**For umu-launcher (Methods 1–4):** Proton-GE runs inside the Steam Runtime container, which bundles most libraries. Only the things the container cannot provide need to be on the host — Vulkan ICDs, audio, and TLS:
|
Proton-GE runs inside the Steam Runtime container, which bundles most libraries. Only the things the container cannot provide need to be on the host — Vulkan ICDs, audio, and TLS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -S --needed \
|
sudo pacman -S --needed \
|
||||||
@@ -87,28 +86,6 @@ sudo pacman -S --needed \
|
|||||||
vulkan-icd-loader lib32-vulkan-icd-loader
|
vulkan-icd-loader lib32-vulkan-icd-loader
|
||||||
```
|
```
|
||||||
|
|
||||||
**For plain wine-staging (Method 5 only):** Wine runs directly on the host, so it needs the full set of libraries:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo pacman -S --needed \
|
|
||||||
wine-staging winetricks \
|
|
||||||
gnutls lib32-gnutls \
|
|
||||||
mpg123 lib32-mpg123 \
|
|
||||||
openal lib32-openal \
|
|
||||||
libpulse lib32-libpulse \
|
|
||||||
alsa-plugins lib32-alsa-plugins \
|
|
||||||
alsa-lib lib32-alsa-lib \
|
|
||||||
giflib lib32-giflib \
|
|
||||||
libpng lib32-libpng \
|
|
||||||
libldap lib32-libldap \
|
|
||||||
libjpeg-turbo lib32-libjpeg-turbo \
|
|
||||||
libxcomposite lib32-libxcomposite \
|
|
||||||
libxinerama lib32-libxinerama \
|
|
||||||
gtk3 lib32-gtk3 \
|
|
||||||
gst-plugins-base-libs \
|
|
||||||
vulkan-icd-loader lib32-vulkan-icd-loader
|
|
||||||
```
|
|
||||||
|
|
||||||
### GPU-specific packages
|
### GPU-specific packages
|
||||||
|
|
||||||
Install the right set for your GPU — getting this wrong is the most common reason a successful install fails to render:
|
Install the right set for your GPU — getting this wrong is the most common reason a successful install fails to render:
|
||||||
@@ -121,11 +98,13 @@ Install the right set for your GPU — getting this wrong is the most common rea
|
|||||||
|
|
||||||
The `battlenet-umu-setup.sh` script auto-detects your GPU and installs the correct set. Override with `--gpu=nvidia|amd|intel` if detection is wrong.
|
The `battlenet-umu-setup.sh` script auto-detects your GPU and installs the correct set. Override with `--gpu=nvidia|amd|intel` if detection is wrong.
|
||||||
|
|
||||||
|
> If you specifically want pure Wine without Proton, that is outside the scope of this guide.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚠️ Before you start — things the old guide got wrong
|
## ⚠️ Before you start — things the old guide got wrong
|
||||||
|
|
||||||
- **Do not run Wine, winecfg, winetricks, or game launchers with `sudo`.** Wine prefixes are designed to live in your user's home directory. Running Wine as root corrupts ownership, creates a `/root` prefix, and is a real security risk since you're executing untrusted Windows binaries as root. Every command in this guide runs as your regular user.
|
- **Do not run umu-run or game launchers with `sudo`.** Wine prefixes live in your user's home directory. Running as root corrupts ownership and is a real security risk since you're executing untrusted Windows binaries as root. Every command in this guide runs as your regular user.
|
||||||
- **You do not need `dotnet48`, `vcrun2003/2005/2008/2012/2013`, or `directplay`.** Modern Battle.net ships its own CEF runtime.
|
- **You do not need `dotnet48`, `vcrun2003/2005/2008/2012/2013`, or `directplay`.** Modern Battle.net ships its own CEF runtime.
|
||||||
- **You do not need to manually install DXVK into `system32`.** Proton-GE bundles a current DXVK and VKD3D.
|
- **You do not need to manually install DXVK into `system32`.** Proton-GE bundles a current DXVK and VKD3D.
|
||||||
- **You do not need the 2010 DirectX End-User Runtime redist.** Battle.net doesn't need it, and games that do will install their own D3DX DLLs.
|
- **You do not need the 2010 DirectX End-User Runtime redist.** Battle.net doesn't need it, and games that do will install their own D3DX DLLs.
|
||||||
@@ -313,67 +292,6 @@ The launcher shows up in the bottle's **Programs** list.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Method 5 — Manual wine-staging prefix (advanced, no Proton)
|
|
||||||
|
|
||||||
Use this only if you specifically want pure Wine without Proton.
|
|
||||||
|
|
||||||
### 1. Create a 64-bit prefix
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# As your normal user — NOT root
|
|
||||||
export WINEPREFIX="$HOME/Games/battlenet-wine-prefix"
|
|
||||||
export WINEARCH=win64
|
|
||||||
|
|
||||||
mkdir -p "$WINEPREFIX"
|
|
||||||
winecfg
|
|
||||||
```
|
|
||||||
|
|
||||||
In `winecfg`, set the Windows version to **Windows 10** and close.
|
|
||||||
|
|
||||||
### 2. Install DXVK
|
|
||||||
|
|
||||||
```bash
|
|
||||||
WINEPREFIX="$HOME/Games/battlenet-wine-prefix" winetricks dxvk
|
|
||||||
```
|
|
||||||
|
|
||||||
That single command replaces what the old guide did by hand with `cp -r` into `system32`/`syswow64`. **Do not copy DLLs manually.**
|
|
||||||
|
|
||||||
### 3. Download and run the installer
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -L -o ~/Downloads/Battle.net-Setup.exe \
|
|
||||||
"https://downloader.battle.net/download/getInstaller?os=win&installer=Battle.net-Setup.exe"
|
|
||||||
|
|
||||||
WINEPREFIX="$HOME/Games/battlenet-wine-prefix" \
|
|
||||||
WINE_SIMULATE_WRITECOPY=1 \
|
|
||||||
wine ~/Downloads/Battle.net-Setup.exe
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Launch scripts
|
|
||||||
|
|
||||||
`~/.local/bin/battlenet`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/sh
|
|
||||||
export WINEPREFIX="$HOME/Games/battlenet-wine-prefix"
|
|
||||||
export WINE_SIMULATE_WRITECOPY=1
|
|
||||||
exec wine "$WINEPREFIX/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe" "$@"
|
|
||||||
```
|
|
||||||
|
|
||||||
`~/.local/bin/battlenetkill`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
#!/bin/sh
|
|
||||||
export WINEPREFIX="$HOME/Games/battlenet-wine-prefix"
|
|
||||||
wineserver -k
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
chmod +x ~/.local/bin/battlenet ~/.local/bin/battlenetkill
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Adding ~/.local/bin to PATH
|
## Adding ~/.local/bin to PATH
|
||||||
|
|
||||||
Most Arch shell setups include `~/.local/bin` automatically, but if yours doesn't:
|
Most Arch shell setups include `~/.local/bin` automatically, but if yours doesn't:
|
||||||
@@ -423,8 +341,44 @@ Historically the most problematic title on Wine. With umu + protonfixes it works
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Updating GE-Proton
|
||||||
|
|
||||||
|
Use `battlenet-update-proton.sh` to download a new GE-Proton release and switch to it without touching your prefix:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Interactive picker — shows the 10 most recent releases, marks which are installed
|
||||||
|
./battlenet-update-proton.sh
|
||||||
|
|
||||||
|
# Auto-install the latest release non-interactively
|
||||||
|
./battlenet-update-proton.sh --latest
|
||||||
|
|
||||||
|
# List available releases and exit
|
||||||
|
./battlenet-update-proton.sh --list
|
||||||
|
|
||||||
|
# Install a specific version
|
||||||
|
./battlenet-update-proton.sh --version=GE-Proton9-20
|
||||||
|
```
|
||||||
|
|
||||||
|
The script downloads the selected version into `~/.local/share/Steam/compatibilitytools.d/` and updates `~/.local/bin/battlenet` to point at it. Restart Battle.net after switching.
|
||||||
|
|
||||||
|
**Rolling back:** if a new release breaks something, just pin the previous known-good version:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./battlenet-update-proton.sh --version=GE-Proton9-20
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
|
If you are not sure where to start, run the diagnose script first — it checks your entire setup and reports exactly what is wrong:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./battlenet-diagnose.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
It covers: GPU/Vulkan drivers, umu-launcher, GE-Proton installation, prefix health, launch script env vars, stale agent locks, XWayland availability, and running processes.
|
||||||
|
|
||||||
### "Battle.net Update Agent went to sleep. Attempting to wake it up… BLZBNTBNA00000005"
|
### "Battle.net Update Agent went to sleep. Attempting to wake it up… BLZBNTBNA00000005"
|
||||||
|
|
||||||
The most common 2025–2026 failure mode. In order:
|
The most common 2025–2026 failure mode. In order:
|
||||||
@@ -480,7 +434,13 @@ sudo rm -rf /home/<user>/Games/battlenet-wine-prefix
|
|||||||
|
|
||||||
### Something else is broken
|
### Something else is broken
|
||||||
|
|
||||||
Delete the prefix and start over — this really does fix most weird states.
|
Run the diagnose script first — it will usually point at the specific problem:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./battlenet-diagnose.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
If nothing obvious comes up, delete the prefix and start over — this really does fix most weird states:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
rm -rf "$HOME/Games/battlenet-umu" # or battlenet-wine-prefix
|
rm -rf "$HOME/Games/battlenet-umu" # or battlenet-wine-prefix
|
||||||
@@ -547,7 +507,7 @@ Blizzard does not ban for running via Wine/Proton/Linux. Their Warden anti-cheat
|
|||||||
- Removed manual DirectX June 2010 redist install step.
|
- Removed manual DirectX June 2010 redist install step.
|
||||||
- Removed advice to enable Arch `[testing]` repos.
|
- Removed advice to enable Arch `[testing]` repos.
|
||||||
- Added **umu-launcher** as the recommended method — protonfixes handle the Battle.net workarounds automatically.
|
- Added **umu-launcher** as the recommended method — protonfixes handle the Battle.net workarounds automatically.
|
||||||
- Added Steam + Proton-GE, Lutris, and Bottles methods.
|
- Added Steam + Proton-GE, Lutris, and Bottles methods. Removed wine-staging method.
|
||||||
- Added `WINE_SIMULATE_WRITECOPY=1` workaround for the modern CEF login/agent issues.
|
- Added `WINE_SIMULATE_WRITECOPY=1` workaround for the modern CEF login/agent issues.
|
||||||
- Replaced `/usr/bin/` install of user launch scripts with `~/.local/bin/`.
|
- Replaced `/usr/bin/` install of user launch scripts with `~/.local/bin/`.
|
||||||
- Set default Wine Windows version to Windows 10 rather than Windows 7.
|
- Set default Wine Windows version to Windows 10 rather than Windows 7.
|
||||||
|
|||||||
Reference in New Issue
Block a user