Battle.net is the launcher behind World of Warcraft, Diablo IV, Overwatch 2, Starcraft II, Hearthstone, and every other Blizzard title. It is a Windows application. Blizzard's official support page states plainly that their games are not designed to run on Linux and that there are no current plans to make Battle.net compatible with Linux-based operating systems. (Blizzard Support, article 11571)

That sentence has remained effectively unchanged for years. There is no petition threshold that will change it, no API to reverse-engineer into a native launcher the way Heroic works for Epic and GOG, and no unofficial client maintained by the community the way Legendary handles the Epic Games Store. Battle.net's backend is proprietary and its launcher couples tightly to Windows internals in ways that make a clean reimplementation impractical.

What does exist is a well-worn set of compatibility layers -- Wine, Proton, and GE-Proton -- that translate Windows API calls into something the Linux kernel understands. This guide covers every installation method available as of early 2026, explains exactly why Battle.net breaks when it does, and documents every known fix for the errors you will encounter.

Warning

Because Blizzard does not support Linux, they will not troubleshoot issues caused by Wine or Proton. Every method below is community-maintained. A Blizzard launcher update can break any of them at any time, and the fix typically arrives in a new GE-Proton release within days.

Tip

Running Battle.net through Wine or Proton does not get your account banned. Blizzard's Warden anti-cheat runs at the user level and scans for cheat software inside the game's process -- not for the compatibility layer itself. A Blizzard support response from May 2025 confirmed that players are not banned for using Linux or SteamOS. The community consensus, built from years of Wine and Proton users, matches: the compatibility layer is not a ban trigger. (Blizzard EU Forums, May 2025)

How Compatibility Layers Work

Before picking an installation method, it helps to understand what you are actually running. Wine (Wine Is Not an Emulator) is a compatibility layer that translates Windows API calls into POSIX system calls that Linux can handle natively. It is not virtualization -- there is no Windows kernel running, no overhead from hardware emulation. Wine intercepts calls like CreateFile() or DirectX rendering calls and maps them to their Linux equivalents.

Proton is Valve's fork of Wine, bundled inside Steam. It includes thousands of game-specific patches, a built-in version of DXVK (which translates Direct3D 9/10/11 calls into the Vulkan graphics API), and the Steam Linux Runtime -- a container that ensures a consistent set of libraries regardless of what your distribution has installed. Proton ships with Steam and is what powers Steam Play, Valve's mechanism for running Windows games on Linux without any user configuration.

GE-Proton (the "GE" stands for GloriousEggroll, its maintainer) is a community fork of Proton that pulls in fixes faster than Valve's release schedule allows. When Blizzard ships a launcher update that breaks Wine's Chromium Embedded Framework handling -- which it does occasionally -- GE-Proton typically has a patch within 48 to 72 hours. For Battle.net specifically, GE-Proton has historically been the more reliable runtime.

DXVK itself is worth understanding separately. It was created by Philip "doitsujin" Rebohle out of frustration with Wine's Direct3D 11 to OpenGL translation layer, which was both slow and incompatible with many games. DXVK translates Direct3D 8, 9, 10, and 11 API calls into Vulkan, which is a modern low-overhead graphics API with first-class Linux support. Valve sponsored DXVK development full-time starting in 2018. As of version 2.5 (released November 2024), DXVK includes overhauled memory and resource management that results in up to 1 GB of VRAM savings in certain games. DXVK is confirmed to support over 80% of Direct3D Windows games near-flawlessly. (Wikipedia: DXVK)

Note

DXVK requires a GPU with Vulkan support. For NVIDIA, that means a GTX 900 series card or newer. For AMD, an RX 400 series or newer with the RADV Mesa driver. For Intel, integrated graphics from Broadwell onward -- though DXVK 2.x requires Vulkan 1.3, which eliminates some older integrated GPUs. If your hardware does not support Vulkan 1.3, you may need to pin DXVK to version 1.10.3 or use an older Proton release.

ntsync is the newest piece of the stack and worth understanding because it directly affects performance for any Windows application running under Wine or Proton, including Battle.net and its games. Windows games are heavily multi-threaded -- they spawn threads for rendering, audio, asset streaming, physics, and networking, all of which contend for CPU time using Windows NT synchronization primitives. Wine historically emulated these primitives in user space, which introduced overhead that showed up as stutters and reduced frame rates in CPU-bound scenarios. If you want to understand how the Linux kernel memory model underpins this kind of synchronization work, that context is worth having before reading further.

The ntsync kernel driver exposes Windows NT-style locking primitives directly from the Linux kernel, eliminating that user-space overhead. The driver was merged into Linux 6.14, which shipped in March 2025. Wine 11 (released January 2026) uses ntsync automatically when the kernel module is available. GE-Proton enabled ntsync by default starting with version 10-10 (July 2025), removing the need to set any environment variable on kernels 6.14 or newer. SteamOS added the ntsync driver in update 3.7.20, released January 2026. (GamingOnLinux, January 2026)

The practical impact depends on the game and hardware. Games with high thread contention see the largest gains -- the original ntsync benchmark data from kernel developer Elizabeth Figura showed frame rate improvements ranging from 50 to 150 percent compared to unpatched Wine in those workloads. Against Proton's existing fsync implementation the difference is smaller, since fsync already approximated NT synchronization. For Battle.net and WoW specifically, ntsync tends to reduce the micro-stutters that appear during zone transitions and large-raid scenarios. (Phoronix, January 2025)

Tip

To verify ntsync is active, run uname -r to confirm your kernel is 6.14 or later, then check ls /dev/ntsync -- if the device file exists, the module is loaded. On distributions where the module is not auto-loaded, run sudo modprobe ntsync and add ntsync to /etc/modules-load.d/ntsync.conf to persist across reboots. If you are on SteamOS 3.7.20 or later, ntsync is already active with no action required.

Method 1: Via Steam (Recommended for Most Users)

The Steam method has become the most reliable approach in 2026. It does not require manually managing Wine prefixes, handling Winetricks dependencies, or understanding how GE-Proton is structured. The tradeoff is that it ties Battle.net to your Steam installation and requires a few non-obvious steps to configure correctly.

The process works by adding the Battle.net installer as a non-Steam game, running it through Proton to create a Windows prefix, and then re-targeting the shortcut to the installed launcher executable. Here is the complete flow:

First, download the official Battle.net Windows installer from Blizzard's website. Open Steam, navigate to Steam > Settings > Compatibility, and enable Steam Play for all titles. Then add the downloaded Battle.net-Setup.exe as a non-Steam game via Add a Game > Add a Non-Steam Game.

Right-click the new entry in your library, open Properties > Compatibility, and force a specific Proton version. GE-Proton 10-6 was confirmed working as of November 2025 on Linux Mint, and subsequent releases have maintained compatibility. (Linux Mint Forums, November 2025) As of March 2026, the current release is GE-Proton 10-33 — always install the latest version using ProtonUp-Qt, which downloads releases directly from the GE-Proton GitHub repository and places them in the correct directory automatically.

install GE-Proton manually
# Create the compatibility tools directory if it doesn't exist
$ mkdir -p ~/.steam/steam/compatibilitytools.d/

# Download the current GE-Proton release (check GitHub for the latest version number)
# As of March 2026, the current release is GE-Proton10-33
$ wget https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-33/GE-Proton10-33.tar.gz

# Extract into the compatibility tools directory
$ tar -xf GE-Proton10-33.tar.gz -C ~/.steam/steam/compatibilitytools.d/

# Restart Steam -- the new Proton version will appear in the compatibility dropdown
# ProtonUp-Qt automates this and is the recommended method for keeping GE-Proton current

Run the installer through Steam. Once the Battle.net setup completes, change the shortcut's target from Battle.net-Setup.exe to the installed launcher binary, typically located at:

$ ~/.steam/steam/steamapps/compatdata/[APPID]/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe

The APPID is a numeric identifier Steam assigns to non-Steam games. You can find it by checking the path under ~/.steam/steam/steamapps/compatdata/ -- a new directory will appear after the first run. Once you retarget the shortcut, Battle.net should launch directly to the launcher without reinstalling on each run.

Tip

On CachyOS, the Lutris method has been reported as unreliable -- the Steam method with Proton tends to work more consistently on that distribution. If you are on an immutable distro like SteamOS or Bazzite, the Steam method is generally the only practical path without additional configuration.

Method 2: Via Lutris

Lutris is an open-source game manager for Linux that automates Wine prefix configuration, downloads the correct runtime, and applies game-specific patches through community-maintained install scripts. For Battle.net, Lutris has historically been the go-to method for users comfortable with a bit more configuration.

The Lutris library includes a Battle.net entry with an automated install script that handles prefix creation and dependency installation. The critical current requirement is to set GE-Proton as the runner rather than the default Wine-GE, because GE has discontinued Wine-GE builds and Lutris still ships an outdated Wine-GE version by default. (Lutris GitHub Issue #5914, February 2025)

Lutris + GE-Proton setup
# Install Lutris (Debian/Ubuntu)
$ sudo apt install lutris

# In Lutris: Preferences > Updates > Install Wine-GE
# This will also pull in the latest GE-Proton build

# Then in Runner Options for Battle.net, set Wine Version to GE-Proton
# The first launch will take time -- UMU (Steam Runtime adapter) initializes

# Arch-based systems
$ sudo pacman -S lutris

One important and non-obvious rule documented by the Lutris team: do not log into your Battle.net account during the very first installer run. Logging in before Lutris finishes internal configuration can cause database errors inside the Wine prefix that are difficult to recover from without deleting the prefix and starting over. (LinuxEnCaja, July 2025)

For users running the Flatpak version of Lutris, there is an additional complication: Lutris Flatpak cannot install the wine32 package that Wine needs for 32-bit application support within a 64-bit prefix. This is not fixable within the Flatpak sandbox. On immutable distributions where the system package manager is not available, this makes the Steam method preferable. If you are running Fedora and want a broader gaming setup rather than just Battle.net, the Fedora gaming optimization guide covers GPU drivers, Steam, and Lutris configuration in detail.

One veteran Linux Mint user with years of experience running Blizzard games through Lutris described the setup as reliable once configured, noting that Battle.net stays current internally just as it would on a Windows system. (Linux Mint Forums, August 2025)

Method 3: Manual Wine Prefix

The manual approach gives you the most control but requires understanding what you are doing at each step. It is the method to use if you want Battle.net running outside of both Steam and Lutris -- useful in server contexts, scripting scenarios, or if you want to isolate the prefix in a custom location.

The core requirements are a 64-bit Wine prefix, the .NET Framework 4.0 or higher, basic Microsoft fonts, and DXVK installed into the prefix's system32 and syswow64 directories. The space requirement for the prefix, GE-Proton, and Battle.net itself is approximately 7.5 GB before any games are installed. (GitHub Gist: orestesc, 2025)

manual Wine prefix setup
# Create the prefix directory
$ mkdir -p ~/Games/battlenet

# Initialize a 64-bit prefix
$ WINEPREFIX=~/Games/battlenet WINEARCH=win64 wineboot

# Install required dependencies via Winetricks
$ WINEPREFIX=~/Games/battlenet winetricks -q dotnet48 vcrun2015 vcrun2017 vcrun2019

# Install core fonts (Battle.net UI relies on them)
$ WINEPREFIX=~/Games/battlenet winetricks corefonts

# Set Windows version to Windows 10
$ WINEPREFIX=~/Games/battlenet winecfg
# In winecfg > Applications tab, set Windows Version to Windows 10

# Download installer from Blizzard
$ wget "https://www.battle.net/download/getInstallerForGame?os=win&gameProgram=BATTLENET_APP" -O ~/Downloads/Battle.net-Setup.exe

# Run the installer
$ WINEPREFIX=~/Games/battlenet wine ~/Downloads/Battle.net-Setup.exe

After installation, create a launch script so you do not need to remember the full Wine prefix path and executable location each time:

~/bin/battlenet
#!/bin/bash
export WINEPREFIX="$HOME/Games/battlenet"
export WINEARCH=win64
export DXVK_ASYNC=1

wine "$WINEPREFIX/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe"
$ chmod +x ~/bin/battlenet && battlenet

Known Errors and How to Fix Them

Battle.net on Linux has a reputation for breaking unexpectedly. The breakage is rarely random -- it follows predictable patterns tied to specific Blizzard launcher updates or Wine version changes. Understanding the error is the fastest path to the fix.

BLZBNTBNA00000005: Battle.net Agent Went to Sleep

This is the single most common Battle.net error on Linux, and it has been appearing since at least 2018 -- it is tracked in the WineHQ bug database as Bug 45814. It occurs when the Battle.net Update Agent process fails to start or crashes. On Windows it is a transient networking error; on Linux it is far more persistent.

One developer who encountered this on Arch Linux via Bottles described the root cause: a broken agent binary in the ProgramData/Battle.net/Agent directory. The fix involves locking that directory to prevent Battle.net from overwriting its own agent with a broken version. (Tuan-Anh Tran, May 2025)

fix: agent went to sleep (Lutris)
# Kill all Battle.net processes first
$ pkill -9 Battle.net
$ pkill -9 Agent
$ pkill -9 Blizzard

# Delete the Agent data directory (adjust path to your Lutris install)
$ rm -rf ~/Games/battlenet/drive_c/ProgramData/Battle.net/Agent
$ rm -rf ~/Games/battlenet/drive_c/ProgramData/Blizzard\ Entertainment

# Reopen Lutris and start Battle.net -- you will need to log in again

If the above does not resolve it, switching the runner to GE-Proton (rather than Wine Staging or the default Proton) is the next step. Multiple reports from May and June 2025 confirmed that switching from the "Soda" runner to GE-Proton in Bottles also resolved the error. (Linux Mint Forums, June 2025)

In the Steam method, the update-channel switch also works: changing to the Beta channel in Battle.net settings and running with Proton 10 resolved the issue for some users. (Blizzard EU Forums, May 2025)

Battle.net Launcher Update Breaking Entirely

In January 2025, a Blizzard launcher update broke the update mechanism for Battle.net on Linux broadly -- not just one distribution or one method. The fix arrived in GE-Proton 9-23, which pulled in a Wine patch addressing the Chromium Embedded Framework write-copy handling that the update relied on. (GamingOnLinux, January 2025)

One GamingOnLinux reader confirmed in January 2025 that switching to GE-Proton 9-23 resolved the problem immediately after encountering a Battle.net update failure -- they had previously been using the Lutris default runner. (GamingOnLinux reader thread, January 2025)

This is the defining characteristic of Battle.net on Linux: it works well for extended periods, then a Blizzard update breaks something, and the community patches it through GE-Proton within a few days. Keeping GE-Proton updated is the most effective preventive measure.

Blank Grey Window After Login

When the launcher signs in successfully but the main window is a blank grey rectangle with no game tiles or UI elements, this typically indicates a Chromium Embedded Framework rendering failure. The CEF component Battle.net uses for its UI is the most fragile part of the Windows-to-Linux translation. Fixes in approximate order of effectiveness:

  • Switch to or update GE-Proton -- this specific symptom often tracks with CEF-related Wine patches.
  • Verify that DXVK is active and Vulkan drivers are installed and up to date.
  • Check that the 32-bit Vulkan ICD loader is installed: lib32-vulkan-icd-loader on Arch, libvulkan1:i386 on Debian/Ubuntu.
  • Add PROTON_LOG=1 %command% as a launch option in Steam to generate a log file, then search it for err:vulkan lines.
install 32-bit Vulkan support
# Ubuntu / Debian
$ sudo dpkg --add-architecture i386
$ sudo apt update && sudo apt install mesa-vulkan-drivers:i386 libvulkan1:i386

# Arch Linux
$ sudo pacman -S lib32-vulkan-icd-loader lib32-vulkan-radeon
# For NVIDIA on Arch:
$ sudo pacman -S lib32-nvidia-utils

# Fedora
$ sudo dnf install vulkan-loader.i686 mesa-vulkan-drivers.i686

"An Error Occurred While Loading Game Information"

This appears after login when Battle.net cannot retrieve game library data from Blizzard's servers. On Linux it is almost always a networking issue within the Wine prefix -- specifically, the prefix's DNS resolution or SSL certificate handling. Setting the Windows version to Windows 10 in winecfg (rather than Windows 7, which is sometimes a legacy default) resolves this in many cases because Battle.net's server communication was built against Windows 10 APIs.

Blank Window or Input Issues Under Wayland

In 2026 many distributions ship with Wayland as the default display server, and Wine's Wayland driver has improved considerably -- but it is still considered experimental for gaming workloads. Battle.net under Proton runs via XWayland by default, which provides a stable compatibility path regardless of your compositor. If you are running a native Wayland Wine session (not through Steam), you may encounter a blank launcher window, broken mouse input, or missing game tiles.

The fix is straightforward: switch to an X11 session, or ensure your Steam launch is going through XWayland. To force XWayland explicitly when running outside Steam, set DISPLAY=:0 or add WAYLAND_DISPLAY= (empty) to clear the variable so Wine falls back to X. The Warcraft III: Reforged Wayland guide from Hive Workshop documents a working Wayland-specific setup for that title, but for other Blizzard games, X11 or XWayland remains the path of least resistance in 2026. (Hive Workshop: WC3 Wayland guide, May 2025)

WINE_SIMULATE_WRITECOPY and the locationapi Override

Two environment variables that rarely appear in mainstream guides have become some of the most effective targeted fixes for Battle.net on Linux. They address different failure modes, but both can be added as Steam launch options or exported in a manual Wine script.

WINE_SIMULATE_WRITECOPY=1 instructs Proton to simulate Windows write-copy memory semantics -- a mechanism where a process that attempts to modify a shared memory-mapped file receives its own private copy rather than writing to the original. Battle.net's CEF-based launcher relies on write-copy behavior during its update cycle and during the login screen rendering phase. On Proton builds that predate the upstream Wine CEF patch, or on any plain Wine installation, the launcher may show a blank login screen with no visible buttons -- a symptom that looks like a rendering failure but is actually a write-copy mapping error. Setting WINE_SIMULATE_WRITECOPY=1 as a launch option resolves this. In Steam, add it to the game's launch options as: WINE_SIMULATE_WRITECOPY=1 %command%. Note that this is a Proton-specific variable -- it has no effect in vanilla Wine. (NixOS Wiki: Battle.net; WineHQ AppDB: Battle.net)

WINEDLLOVERRIDES="locationapi=d" disables the Windows Location API DLL inside the Wine prefix. Battle.net's launcher references the location API during startup on some builds, and on certain Linux configurations the Wine implementation of that API throws errors that stall the initialization sequence. Disabling it entirely prevents the stall. This override is most commonly reported alongside WINE_SIMULATE_WRITECOPY=1 as a combined fix for the BLZBNTBNA00000005 agent sleep error when other approaches fail. Use it in Steam as: WINEDLLOVERRIDES="locationapi=d" WINE_SIMULATE_WRITECOPY=1 %command%. (GamingOnLinux community thread, February 2026)

Steam launch option: write-copy + locationapi fix
# Add this in Steam: right-click game > Properties > General > Launch Options
WINEDLLOVERRIDES="locationapi=d" WINE_SIMULATE_WRITECOPY=1 %command%

# For manual Wine (write-copy is Proton-only; locationapi works in both)
export WINEDLLOVERRIDES="locationapi=d"
wine Battle.net.exe

The QT Initialization Error: setfattr Fix

On a fresh Wine prefix, Battle.net can fail to start with a Qt platform plugin error even after installation appears to complete successfully. The underlying cause is a Wine extended attribute (user.DOSATTRIB) set on qwindows.dll that prevents Qt from loading the Windows platform backend. The fix is to strip that attribute:

fix: Qt platform plugin error on fresh prefix
# Locate qwindows.dll in your prefix (path may vary by Battle.net build)
$ find ~/Games/battlenet -name "qwindows.dll" 2>/dev/null

# Strip the DOSATTRIB extended attribute that blocks Qt loading
$ setfattr -x user.DOSATTRIB /path/to/qwindows.dll

# After this, the login box should appear. If login button is invisible,
# install corefonts: winetricks corefonts

This is one of the few fixes that requires attr utilities rather than Wine configuration. On most distributions setfattr is in the attr package. (WineHQ AppDB: Battle.net)

Method 4: Via Bottles

Bottles is a GTK4 application that manages isolated Wine environments with a per-bottle approach -- each application gets its own contained prefix, runtime, and dependency set. It surfaces in the Battle.net community consistently as the fallback when both Steam and Lutris are failing, and for some distributions (particularly those with broken Flatpak Lutris behavior) it is the most reliable path.

Install Bottles from AUR on Arch-based systems, or as a Flatpak on other distributions -- but use the AUR package rather than the Flatpak when possible, because the Flatpak Bottles shares the same sandbox limitation as Flatpak Lutris regarding 32-bit Wine support. In the Bottles interface, create a new bottle, set the environment to Gaming, and select GE-Proton as the runner. Download the Battle.net Windows installer and run it through Bottles. The combination of WINEDLLOVERRIDES="locationapi=d" and WINE_SIMULATE_WRITECOPY=1 as environment variables in the Bottles runner options resolves the agent sleep error in cases where Lutris and the Steam method do not. (GamingOnLinux community thread, February 2026)

Note

Bottles uses a separate runner management system from Lutris and Steam. GE-Proton releases must be installed through Bottles' own runner manager, not ProtonUp-Qt. In Bottles: navigate to Preferences, then select Runners, and install the current GE-Proton release from there. Runner updates in Bottles are per-bottle -- you will need to select the new version in each bottle's settings after updating.

Snap and Flatpak Steam: Non-Standard compatdata Paths

If you installed Steam as a Snap or Flatpak package rather than via your distribution's native package manager, the compatdata directory where Battle.net's Wine prefix lives is in a non-standard location. This affects the shortcut retargeting step in the Steam method:

compatdata paths by Steam installation type
# Native Steam (default)
~/.steam/steam/steamapps/compatdata/

# Steam installed as Snap
~/snap/steam/common/.local/share/Steam/steamapps/compatdata/

# Steam installed as Flatpak
~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/

# To find your Battle.net prefix directory regardless of install type:
$ find ~ -path "*/compatdata/*/Battle.net" -type d 2>/dev/null

Snap-based Steam installations also have a known limitation: Snap's confinement may block Proton from writing to paths outside the Snap data directory. If Battle.net fails to update or install games when using Snap Steam, installing a native Steam package is strongly recommended over attempting to work around Snap's confinement model. (GamingOnLinux: Battle.net guide, January 2026)

Not all Blizzard games behave identically once Battle.net is running. The launcher itself is the hardest part; the games themselves vary.

By default, every game you install through Battle.net lives inside the same Wine prefix as the launcher. This is convenient -- one GE-Proton update covers everything -- but it also means a corrupted prefix affects all your titles at once. If you run multiple Blizzard games seriously, a periodic tar backup of your prefix directory is cheap insurance. The one exception to the shared-prefix pattern is Warcraft III: Reforged, which benefits from its own dedicated prefix due to its CEF video pipeline issues (covered below).

World of Warcraft and WoW Classic have been running on Wine for years and are generally considered the most reliable Blizzard titles on Linux. WoW actually had a native Linux client during an early beta period, and some of that Linux-awareness apparently persisted in the codebase. Users have reported running WoW Classic on Linux for years without significant issues using either Wine Staging or GE-Proton. (Linux Mint Forums, August 2025)

Starcraft and Starcraft II have long compatibility histories and tend to work well. Starcraft Remastered runs with minimal configuration. Starcraft II benefits from DXVK.

Hearthstone generally runs, though it uses its own rendering approach that occasionally causes graphical oddities. The card animations and effects are GPU-intensive in ways that expose Vulkan driver edge cases.

Diablo II: Resurrected and Diablo IV are playable. D2R in particular has been confirmed running on Linux via Bottles with GE-Proton. Diablo IV and Overwatch 2 are available directly on Steam on Linux, which bypasses the Battle.net launcher issue entirely for those titles -- Steam's Proton handles them as regular Steam games.

Warcraft III: Reforged is the title with the most persistent Linux complications. The "lion doors" black-screen loading issue that appeared after GE-Proton 9-23 shipped in January 2025 has a documented workaround: create a dedicated Lutris prefix for WC3 (separate from the shared Battle.net prefix), replace the webm cinematics with empty stub files to bypass the broken CEF video pipeline, and switch in-game graphics to Classic mode. With these steps applied, users have reported smooth in-game performance as recently as May 2025. (Hive Workshop community guide, May 2025) The menu animations remain laggy because they also rely on CEF video rendering, but gameplay itself is stable. If Warcraft III: Reforged is your primary use case, the workaround works -- but it requires more setup steps than any other Blizzard title on Linux, and should be treated as intermediate-level configuration rather than plug-and-play.

Note

Diablo IV and Overwatch 2 are on Steam. If those are the only titles you need, you do not need Battle.net on Linux at all -- add them to your Steam library and run them through Steam's built-in Proton. The Battle.net launcher installation process is only necessary for titles exclusive to the Battle.net client.

Steam Deck and SteamOS

The Steam Deck runs SteamOS, which is a Linux distribution based on Arch Linux with an immutable root filesystem. This creates specific constraints: you cannot install packages system-wide in the traditional sense, and the Flatpak version of Lutris has the wine32 limitation described earlier.

The Steam method is the recommended approach on Steam Deck. Enable desktop mode, download the Battle.net installer, add it as a non-Steam game, force GE-Proton compatibility, and run the installer. The touchscreen and Steam Deck controls are useful for gaming but make the initial setup in Desktop Mode somewhat cumbersome -- an external mouse and keyboard are worth connecting for the configuration steps.

SteamOS now ships the ntsync kernel driver as of update 3.7.20, released January 2026. This is directly relevant to Battle.net performance on the Steam Deck: WoW and other multi-threaded Blizzard titles benefit from ntsync's kernel-level synchronization, which reduces micro-stutters during intensive scenarios. No user configuration is required on SteamOS 3.7.20 or later -- the driver is active automatically. (GamingOnLinux, January 2026)

Disk space on the internal Steam Deck storage is limited. The Battle.net prefix itself requires approximately 7.5 GB before any games are installed, and WoW can consume 80+ GB. An external SSD or the microSD slot are practical necessities for Blizzard titles on the Steam Deck.

Why There Is No Native Launcher

The absence of a native Battle.net for Linux is not an oversight. Platforms like Heroic Games Launcher can offer native Linux support for Epic and GOG games because those stores have accessible APIs -- or because developers like Legendary reverse-engineered the Epic API and built against it. Battle.net has no public API, and its backend protocol is proprietary. Reverse-engineering it would be a substantial undertaking with significant legal risk, and no community project has attempted it at the scale Battle.net would require.

Blizzard also has a commercial incentive to direct users toward Windows: their games integrate with Windows-native anti-cheat tools, DirectX 12 rendering paths, and NVIDIA-specific features. Some of these have Linux equivalents (DXVK handles DX12 via VKD3D-Proton), but from Blizzard's engineering perspective, maintaining cross-platform launcher and game compatibility for a market segment they do not officially support is not a prioritized investment.

The Steam Deck has changed the calculus somewhat. Valve has demonstrated that Linux gaming is commercially viable at scale, and the growth of SteamOS has increased the size of the Linux gaming audience measurably. Community voices on Blizzard's own forums have argued that Linux support has become overdue, noting that Valve's work has addressed the driver problems that were the traditional barrier. (Blizzard Forums, 2019 -- still relevant in 2025) Whether that argument moves Blizzard remains to be seen. Their support page has not changed.

What to Expect Going Forward

Battle.net on Linux is functional but requires active maintenance. GE-Proton releases address compatibility breaks reliably -- as of March 2026 the project is on version 10-33, with releases shipping roughly every one to two weeks. The Steam method has become the more stable installation path. Games like WoW, Starcraft II, and Hearthstone run well enough for regular play. The pattern is consistent: Blizzard updates something, the compatibility layer breaks, the community patches it within days.

The underlying stack is in the strongest position it has ever been. ntsync is now active by default on current SteamOS and GE-Proton builds, Wine 11 shipped in January 2026 with native ntsync support and a major WoW64 overhaul, and DXVK continues to improve with each release. The performance gap between running Blizzard games on Windows versus Linux has narrowed to the point where many players report no meaningful difference in practice. If you are comfortable updating GE-Proton when Blizzard pushes a breaking change and willing to do the initial setup, running Battle.net on Linux is genuinely workable in 2026.

The situation could improve further if Blizzard adds more titles to Steam -- Diablo IV and Overwatch 2 already exist there, which removes the Battle.net launcher dependency entirely for those games. Valve also announced the Steam Frame and Steam Machine hardware in 2026, both running Linux, which will continue to expand the Linux gaming audience and sharpen the commercial case for publisher attention. For now, Wine, Proton, GE-Proton, and the Linux gaming community are the entire infrastructure holding this together -- and they have been doing it reliably for years.

How to Install Battle.net on Linux via Steam

Step 1: Enable Steam Play and install GE-Proton

Open Steam and navigate to Settings, then Compatibility, and enable Steam Play for all titles. Install GE-Proton using ProtonUp-Qt or by manually extracting the release archive into the compatibilitytools.d directory.

Step 2: Add the Battle.net installer as a non-Steam game

Download the official Battle.net Windows installer from Blizzard, then add it to Steam via Add a Game and select Add a Non-Steam Game. Right-click the entry, open Properties, select the Compatibility tab, and force GE-Proton as the compatibility tool.

Step 3: Run the installer and retarget the shortcut

Launch the installer from Steam to create the Wine prefix and complete the Battle.net setup. Once installation finishes, update the Steam shortcut target from the setup executable to the installed Battle.net Launcher.exe located in the compatdata directory.

Step 4: Keep GE-Proton updated

When Blizzard ships a launcher update that breaks compatibility, a fix typically arrives in a new GE-Proton release within 48 to 72 hours. Use ProtonUp-Qt to install the latest GE-Proton release and switch the shortcut to the new version when issues arise. As of March 2026, GE-Proton 10-33 is the current release.

Sources and References

Every technical claim in this guide is traceable to a primary source. The following are the key references used, listed by category.

Official Documentation

Compatibility Break and Fix Reports

Installation Guides and Community Reports

ntsync and Kernel Performance

Warcraft III: Reforged on Linux

Blizzard Forum Discussion on Linux Support

Environment Variables, Bottles, and Advanced Fixes

  • NixOS Wiki: Battle.net — Documents the WINE_SIMULATE_WRITECOPY=1 requirement for the blank login screen issue and the Proton-only scope of that variable.
  • WineHQ AppDB: Battle.net App Current — Community reports tracking the WINE_SIMULATE_WRITECOPY workaround origin, the setfattr qwindows.dll fix, and historical CEF write-copy breakage patterns.
  • GamingOnLinux: Battle.net installation guide, January 2026 — Documents the WINEDLLOVERRIDES="locationapi=d" combined fix, Snap and Flatpak Steam compatdata path variations, and Bottles as a fallback method. Community thread updated through February 2026.

Frequently Asked Questions

Does Battle.net officially support Linux?

No. Blizzard's official support page confirms that their games do not support Linux and that no plans exist to add Linux compatibility. All Linux compatibility is community-maintained through Wine and Proton.

Which installation method is most reliable for Battle.net on Linux in 2026?

The Steam method using GE-Proton is the most reliable approach as of early 2026. It avoids manual Wine prefix management, works on immutable distributions like SteamOS and Bazzite, and benefits from the fastest GE-Proton patch cycle when Blizzard updates break compatibility.

What is the BLZBNTBNA00000005 error and how do I fix it?

BLZBNTBNA00000005 means the Battle.net Update Agent went to sleep or crashed. The fix involves killing all Battle.net and Agent processes, deleting the Agent data directory inside your Wine prefix, then relaunching Battle.net. Switching the runner to GE-Proton resolves persistent cases.

Can I run Battle.net on the Steam Deck?

Yes. The Steam method is the recommended approach on Steam Deck. Enable Desktop Mode, add the Battle.net installer as a non-Steam game, force GE-Proton compatibility, and run the installer. Note that the Battle.net prefix requires approximately 7.5 GB before any games are installed.

Do Diablo IV and Overwatch 2 require Battle.net on Linux?

No. Diablo IV and Overwatch 2 are available directly on Steam, so Linux users can run them through Steam's built-in Proton without installing Battle.net at all. The Battle.net launcher is only necessary for titles exclusive to the Battle.net client.

What is ntsync and does it help Battle.net on Linux?

ntsync is a Linux kernel driver (merged in kernel 6.14, March 2025) that implements Windows NT-style synchronization primitives at the kernel level, replacing Wine's slower user-space emulation. GE-Proton enables ntsync by default since version 10-10. SteamOS added ntsync in update 3.7.20 (January 2026). For Battle.net games like WoW, ntsync reduces micro-stutters during zone transitions and high-player-count scenarios. On kernels older than 6.14 the driver is unavailable and Wine falls back to fsync automatically.

Will running Battle.net on Linux get my account banned?

No. Blizzard's Warden anti-cheat runs at the user level, scanning for cheat software inside the game's process space -- not for the presence of Wine or Proton. A Blizzard support response from May 2025 confirmed that players are not banned for running on Linux or SteamOS. Years of community experience with Wine and Proton users back this up. The compatibility layer itself is not a ban trigger; what Warden targets is the same cheat software it targets on Windows. (Blizzard EU Forums, May 2025)

Should I use Wayland or X11 for Battle.net on Linux?

For most setups, X11 or XWayland is the safer choice. Proton routes through XWayland by default, so games running under Steam behave consistently regardless of your compositor. Wine's native Wayland driver has improved but is still considered experimental for gaming workloads in 2026. If you encounter a blank window or input issues, switching to an X11 session is the first troubleshooting step. Warcraft III: Reforged has a documented Wayland-specific setup path, but for other Blizzard titles, XWayland is the path of least resistance.

What does WINE_SIMULATE_WRITECOPY=1 do for Battle.net on Linux?

WINE_SIMULATE_WRITECOPY=1 is a Proton environment variable that instructs the runtime to simulate Windows write-copy memory semantics. Battle.net's CEF-based launcher relies on this behavior during its update and login rendering phases. Without it, some users see a blank login screen with no visible buttons -- a symptom that looks like a rendering failure but is a write-copy mapping error. Adding WINE_SIMULATE_WRITECOPY=1 %command% in Steam launch options resolves this. It is a Proton-specific variable and has no effect in vanilla Wine. Combining it with WINEDLLOVERRIDES="locationapi=d" addresses the agent sleep error in persistent cases where other fixes fail.

Can I install multiple Blizzard games in the same Wine prefix?

Yes. The Battle.net launcher manages all game installations inside its own prefix by default, so WoW, Hearthstone, Starcraft II, and other titles share a single prefix. A single GE-Proton update then covers all of them. The exception is Warcraft III: Reforged, which benefits from a dedicated Lutris prefix due to its CEF video pipeline issues. For all other Blizzard titles, the shared prefix is the expected and supported approach -- just consider taking a prefix backup before major GE-Proton updates.