Skip to content

Instantly share code, notes, and snippets.

@martinlabate
Last active July 22, 2024 13:57
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.

@jabuxas
Copy link

jabuxas commented Jul 22, 2024

you add them to your hyprland config

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