Diablo 4 is currently in Beta and due to launch soon, so here's how to get it working on Steam Deck. The same steps can be used to get it working on Linux desktop too. Update: You can also use the NonSteamLaunchers script I covered here that does a lot of the work for you.
You can see the video here, with the text guide below it:
- Go into Desktop Mode (Steam button - Power - Switch to Desktop).
- Download the Battle.net launcher in your web browser (Chrome / Firefox etc).
- Download ProtonUp-Qt from the Discover app.
- Inside ProtonUp-Qt, download the new "GE-Proton7-51-diablo_4_beta". Once done, close ProtonUp-Qt.
- Inside Steam: hit Add A Game in the bottom left, select Add a non-Steam Game and hit Browse.
- Go into your Downloads folder in the file browser, select All Files from the bottom and then select the "Battle.net-Setup.exe" file.
- Once added, search for the Battle.Net installer shortcut in Steam. Right click -> Properties -> Compatibility -> Tick the box and select GE-Proton7-51-diablo_4_beta.
- Now run it and install it. Once installed, close it, do not login.
- Right click on the shortcut again, go to Properties, hit Browse and update the shortcut to point to the "Battle.net Launcher.exe". It's location will depend on where you installed it.
- SD Card: /run/media/mmcblk0p1/Battle.net/
- SSD: /home/deck/.steam/root/steamapps/compatdata/ (then find the most recently created id) /pfx/drive_c/Program Files (x86)/Battle.net/
Now you will have Battle.Net set up and you can launch it in Gaming Mode, in the Non-Steam section of your Steam Library. You may need to manually bring up the on-screen keyboard with STEAM + X, and you can use a mouse cursor by holding the STEAM button and using the Right Trackpad with Right Trigger as a mouse button.
The Battle.Net UI is cut off, but if you click about along the top of it, the app will flicker into focus giving you the install buttons at the bottom.
After that, you're free to install and run Diablo 4. If you get a GPU error message, just hit OK and it will run.
This is just one possible way to do it. You could also use Lutris to install Battle.Net but I personally prefer on Steam Deck specifically to keep everything inside Steam if I can.