Skip to content

Linux

When a game runs through Proton or Wine, .NET’s Documents folder resolves to the Wine prefix (C:\users\steamuser\Documents) instead of your real home directory. DigitalHeaven won’t find your workspace at the default location.

Set the DH_WORKSPACE environment variable to point to your actual workspace. The easiest way is through Steam launch options.

  1. Right-click the game in Steam → PropertiesGeneralLaunch Options

  2. Add:

    DH_WORKSPACE=Z:/home/<user>/Documents/DigitalHeaven %command%

    Replace <user> with your Linux username.

DH_WORKSPACE takes priority over everything, including workspaceRoot in dh-config.jsonc. See Workspace for details.

The dh CLI is installed as a .NET global tool from a local pack (see Setup). It installs to ~/.dotnet/tools/.

On most distros, the .NET SDK installer adds this directory to PATH automatically. If dh isn’t found after installing, add it to your shell profile:

Terminal window
export PATH="$PATH:$HOME/.dotnet/tools"

On NixOS, .NET global tools need DOTNET_ROOT set so the tool shim can find the runtime. Add to your Home Manager config:

home.sessionVariables.DOTNET_ROOT = "${dotnet-combined}/share/dotnet";
home.sessionPath = [ "${config.home.homeDirectory}/.dotnet/tools" ];

Where dotnet-combined is your combined .NET SDK package (e.g. dotnetCorePackages.combinePackages [ dotnet-sdk_10 ]).

Rebuild and re-login (or source your profile) for the changes to take effect.

The Unity Editor plugin invokes dh as a subprocess to compile pallets. On Linux, Unity may not inherit your shell’s PATH, so the plugin automatically searches ~/.dotnet/tools/ when looking for dh.

On NixOS, make sure DOTNET_ROOT is set in your session (see above) — Unity needs it to run .NET global tools.

DigitalHeaven targets .NET 10. You need the SDK to build.

The repo includes a flake.nix with a dev shell:

Terminal window
nix develop

This provides dotnet-sdk_10 and the native libraries needed by DigitalHeaven Studio (Avalonia/SkiaSharp — fontconfig, X11, Wayland, libGL, etc).

Build the solution:

Terminal window
dotnet build

If you use direnv, the repo includes an .envrc — just run direnv allow and the dev shell activates automatically when you enter the directory.

The documentation site uses bun:

Terminal window
cd DigitalHeaven.Docs
bun install
bun dev