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.
- Guild Wars 2 installed via Steam
- Blish HUD downloaded
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.
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:
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:
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
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
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
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 therealpath
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
andMANGOHUD=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 thesed
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.
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
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.
My solution is a one-liner which works with any window manager (xfce4wm in my case):
(Im using Blish just for the pathing module)
After having started GW2+Blish:
xprop -id $(wmctrl -l|grep "Guild Wars"|cut -d " " -f 1) -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xafffffff
What this does is, it changes opacity of GW2, not Blish, Blish then stays in the background of GW2 and cause it is 100% black it blocks all other windows / desktop background below it. Also there are no weird problems regarding keyboard input to solve, cause GW2 is in the front.
The only thing i have to do if there are other windows on the same screen in between Blish and GW2: Tab to Blish, Tab to GW2.
Nice thing is that cause Blish is now in the back, pathing is also quite subtle.
If you want to make changes to the Blish settings itself, you can just tab it to the front for better visibility
Edit: In case you cant tab to Blish, cause your WM hides Blish from the List:
wmctrl -a "Blish HUD" -b add,above,modal