Skip to content

Instantly share code, notes, and snippets.

@martinlabate
Last active April 15, 2025 17:41
Show Gist options
  • Save martinlabate/c4e6f08880a009f88dc1edaa4c6cd87a to your computer and use it in GitHub Desktop.
Save martinlabate/c4e6f08880a009f88dc1edaa4c6cd87a to your computer and use it in GitHub Desktop.
How to run BlishHUD on Steam Deck

Getting BlishHUD to work correctly on the Deck

Intro

This guide will show you how to use BlishHUD while playing GuildWars2 on the Steam Deck, but requires you to launch the game from the Steam Desktop without BigPicture.

Requirements

  • Guild Wars 2 installed via Steam
  • Blish HUD downloaded

Configure the Deck

First, you need to be on the Deck's desktop. To get there press the STEAM key, go to Power, and press Switch to Desktop

Once the desktop loads go to Settings -> Display Configuration -> Compositor

Here we disable the Allow applications to block compositing option and click apply.

Screenshot of the Compositor setting.

This setting makes the composition of windows (the ability to link 2 or more windows) impossible.


Then, back in Settings, go to Windows Management -> Window Rules and click add new. We will create two rules, one for BlishHUD and one for GuildWars2.

The BlishHUD rule should look like this: Screenshot of the BlishHUD Window Rule. Here in the BlishHUD rule, we make the window transparent by reducing its opacity, and we make it unable to get focus so our inputs go directly to Guildwars and are not interrupted by Blish.


And the Guild Wars rule should look like this: Screenshot of the Guildwars Window Rule. In the GuildWars rule, we make it be below other windows so Blish can be shown on top of it.


Now the last config step, we want the taskbar to hide so it does not show on top of our game. To do so, we right-click the taskbar, click Enter Edit Mode, and then in More Options, we select Auto Hide in the Visibility section

Copy BlishHUD to the correct location

Extract BlishHUD and move the extracted folder to the GuildWars2 folder. To find where the game is installed we can follow these steps:

  • Open Steam in desktop
  • Select GuildWars
  • Click the gear icon
  • Select Manage
  • Click Browse local files

Game Properties

To make BlishHUD launch and work properly when we play GuildWars we need to add some launch options.

  • Open Steam in desktop
  • Select GuildWars
  • Click the gear icon
  • Click Properties

General Tab

Here in the General tab, in LAUNCH OPTIONS we want to paste the following:

BHDIR=$(realpath "$(find -iname "Blish.HUD*")"); rm -f BlishHUD; ln -s "$BHDIR" BlishHUD; rm -f BlishHUD/BlishHUD.exe; ln -s "$BHDIR/Blish HUD.exe" BlishHUD/BlishHUD.exe; echo -e "@echo off\nstart Gw2-64.exe -provider Steam -autologin\nping -n 60 127.0.0.1>nul\ncd BlishHUD\nstart BlishHUD.exe\nexit" > gw2.bat; DXVK_ASYNC=1 MANGOHUD=0 eval $(echo %command% | sed "s/Guild Wars 2\/Gw2-64\.exe.*$/\"Guild Wars 2\"\/gw2.bat/")

This bit of code was made by another user, here is the source.

It does the following:

  • Sets the variable BHDIR to the path of the Blish HUD directory using the realpath command and the find command to locate the directory.
  • Removes any existing BlishHUD symbolic link.
  • Creates a new symbolic link named BlishHUD that points to the Blish HUD directory.
  • Removes any existing BlishHUD.exe file in the BlishHUD directory.
  • Creates a new symbolic link named BlishHUD.exe that points to the Blish HUD.exe file in the Blish HUD directory.
  • Creates a new batch file named gw2.bat that contains some commands to run Guild Wars 2 and Blish HUD. The batch file starts Guild Wars 2 with Steam as provider and autologin enabled. Then it waits for 60 seconds before starting Blish HUD. Finally, it exits.
  • Sets two environment variables (DXVK_ASYNC=1 and MANGOHUD=0) and evaluates %command%, which is a placeholder for the command line arguments passed to Guild Wars 2. The result of this evaluation is used as the argument for the sed command, which replaces the original path to Gw2-64.exe with the path to gw2.bat.

The MANGOHUD variable can be changed to 1 to show frame rate and CPU, GPU, and Ram usage in-game.

The -provider Steam part can be changed to -provider Portal if you want to use an Anet Account to log in.

We need Guild Wars to be running before we launch BlishHUD, that's why we wait 60 seconds before launching it. This can be lowered if you feel it is too long.

Compatibility tab

Now in the Compatibility tab, enable Force the use of a specific Steam Play compatibility tool and select the latest GE Proton version. To get GE-Proton you can follow this guide

GuildWars2 Settings

Blish will be shown on top of Guild Wars but with certain transparency, not full, so the game will look darker. To mitigate this we can play with the transparency setting in the BlishHUD window rule and the Gamma config in the Display GuildWars option, I use it like this. Screenshot of the Guildwars Gamma settings.

@olterman
Copy link

olterman commented Aug 2, 2024

so after happily using this for weeks blish is no crashing on start every time, I tried to reset blish by removing it and copying in a new copy, no luck so somewhere there is settings saved ..... I am assuming on whatever desktop dir the wineprefix is using but I cannot find it ... anyone know where steam keeps the C_drive when launching GW2

@Sonwon1
Copy link

Sonwon1 commented Aug 2, 2024

Doesn't this work to find the C_drive?

Open Steam in desktop
Select GuildWars
Click the gear icon
Select Manage
Click Browse local files

@olterman
Copy link

olterman commented Aug 3, 2024

no it opens steam's guild wars folder which is not located in the normal wine prefix structure

@Sonwon1
Copy link

Sonwon1 commented Aug 3, 2024

I am using Lutris and on my system C_drive is here /data/home/sonwon/Games/guild-wars-2/drive_c.

@dlamkins
Copy link

dlamkins commented Sep 29, 2024

FYI, I've added a channel to our Blish HUD Discord where this kind of stuff can also be discussed:

https://discord.com/channels/531175899588984842/1290012018677645352

@smooth-baking-powder
Copy link

smooth-baking-powder commented Mar 5, 2025

If i put this in the Startoptions: "BHDIR=$(realpath "$(find -iname Blish.HUD*")"); rm -f BlishHUD; ln -s "$BHDIR" BlishHUD; rm -f BlishHUD/BlishHUD.exe; ln -s "$BHDIR/Blish HUD.exe" BlishHUD/BlishHUD.exe; echo -e "@echo off\nstart Gw2-64.exe -provider Steam -autologin\nping -n 60 127.0.0.1>nul\ncd BlishHUD\nstart BlishHUD.exe\nexit" > gw2.bat; DXVK_ASYNC=1 MANGOHUD=0 eval $(echo %command% | sed "s/Guild Wars 2\/Gw2-64\.exe.*$/\"Guild Wars 2\"\/gw2.bat/")

the game doenst start anymore. it changed instant back to green "play" button. Compatibility is choosed.

Any Solutions?

@smooth-baking-powder
Copy link

Nobody?

@jakub-vavra-cz
Copy link

jakub-vavra-cz commented Mar 13, 2025

Hi,
I tried to install BlishHUD and run it on the Fedora 41 KDE Spin.
The compositor settings are completely missing for me (but it did not matter).
I unpacked the Blish HUD to "Guild Wars 2/BlishHUD" which the script did not like.
I had to change it to "Guild Wars 2/Blish_HUD" instead to prevent name collision.
I got the (newest) GE-Proton9-22 and blishHUD was crashing.
To figure out the issue (it is crashing) I used https://gist.github.com/martinlabate/c4e6f08880a009f88dc1edaa4c6cd87a?permalink_comment_id=5076827#gistcomment-5076827 to have output in the terminal instead of vanishing bat window.

Later I found out on discord that GE-Proton9-11 is needed to run blishhud properly.

I am starting Guild Wars with BlishHUD by a script (based on above comment) now. I am leaving settings in steam alone.

#!/bin/bash

USER=$(whoami)
PROTON="GE-Proton9-11"
PROTON_PATH="/home/$USER/.local/share/Steam/compatibilitytools.d/$PROTON/files/bin/wine"
GUILD_WARS_PATH="/home/$USER/.local/share/Steam/steamapps/common/Guild Wars 2"
GUILD_WARS_PREFIX_PATH="/home/$USER/.local/share/Steam/steamapps/compatdata/1284210/pfx"
# Environment variables
export DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1="1"
export __GL_SHADER_DISK_CACHE="1"
export __GL_SHADER_DISK_CACHE_PATH=$GUILD_WARS_PATH
export WINEDEBUG="-all"
export DXVK_LOG_LEVEL="none"
export WINEARCH="win64"
export WINE=$PROTON_PATH
export WINEPREFIX=$GUILD_WARS_PREFIX_PATH
export WINEESYNC="1"
export WINEFSYNC="1"
export DXVK_NVAPIHACK="0"
export DXVK_ENABLE_NVAPI="1"
export WINEDLLOVERRIDES="winemenubuilder="
export WINE_LARGE_ADDRESS_AWARE="1"
export TERM="xterm"

echo "Using proton: $PROTON_PATH"

gamemoderun $PROTON_PATH "/home/$USER/.local/share/Steam/steamapps/common/Guild Wars 2/Gw2-64.exe" -provider Portal -autologin &

# Command
gamemoderun $PROTON_PATH "/home/$USER/.local/share/Steam/steamapps/common/Guild Wars 2/Blish_HUD/Blish HUD.exe"

@jakub-vavra-cz
Copy link

Does anyone else experience the issue where the mouse works in moving the GW2 camera, but keyboard input doesn't get passed through? When I click on the screen, my right-click can drag around and I can click on the Blish icon and install modules and stuff, but, any keystroke goes to a different window, for example where I'm typing this instead of to GW2.

Yes, this happens to me as well randomly and seems to occur more when running mouse over a trail or a sign.

@killua99
Copy link

I can see the icon with the latest GE-proton-9-27, but I cannot get the overlay ingame, I'm launching it from another Steam "game" like launching 2 independent games, idk if that might be the cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment