dotfiles/steam-heroic-shortcuts.md
Daniel Bulant 847fe42a9c
docs
2026-05-31 23:20:36 +02:00

4.3 KiB

Steam Heroic Direct Shortcuts

Reference for the non-declarative Steam shortcuts added for Heroic-managed games. These live in Steam config files, not Nix, so this file records the important state for future recovery.

Files

  • Steam shortcuts: /home/dan/.local/share/Steam/userdata/238310127/config/shortcuts.vdf
  • Steam compatibility mapping: /home/dan/.local/share/Steam/config/config.vdf
  • Steam compatdata: /home/dan/.local/share/Steam/steamapps/compatdata/
  • Heroic game config: /home/dan/.config/heroic/GamesConfig/

Steam Shortcuts

All direct shortcuts are configured to use DW-Proton Latest.

Name App ID Exe StartDir Launch options
Arknights: Endfield (Direct Launcher) 3532200938 /home/dan/Games/Heroic/ArknightsEndfieldgowoU/Launcher.exe /home/dan/Games/Heroic/ArknightsEndfieldgowoU empty
Arknights: Endfield (Direct Game) 2506976826 /home/dan/Games/Heroic/ArknightsEndfieldgowoU/games/EndField Game/Endfield.exe /home/dan/Games/Heroic/ArknightsEndfieldgowoU/games/EndField Game empty
Zenless Zone Zero (Direct Launcher) 2568476331 /home/dan/Games/Heroic/ZenlessZoneZero/launcher_epic.exe /home/dan/Games/Heroic/ZenlessZoneZero UMU_ID=umu-zenlesszonezero UMU_USE_STEAM=1 WINE_DISABLE_VULKAN_OPWR=1 %command% {enable_pay:true}
Zenless Zone Zero (Direct Game) 4264951319 /home/dan/Games/Heroic/ZenlessZoneZero/games/ZenlessZoneZero Game/ZenlessZoneZero.exe /home/dan/Games/Heroic/ZenlessZoneZero/games/ZenlessZoneZero Game UMU_ID=umu-zenlesszonezero UMU_USE_STEAM=1 WINE_DISABLE_VULKAN_OPWR=1 %command%

The original Heroic-generated shortcuts were left in place:

Name App ID Exe Launch options
Zenless Zone Zero 2928100415 heroic --no-gui --no-sandbox "heroic://launch?appName=525aa0efd70f4399b9f64bcd2a5b38c7&runner=legendary"
Arknights: Endfield 2465091319 heroic --no-gui --no-sandbox "heroic://launch?appName=bcd55b0d87c245dd867f5b1bd496f1df&runner=legendary"

Compatibility Mapping

The app IDs above were added under InstallConfigStore.Software.Valve.Steam.CompatToolMapping in Steam's config.vdf:

"CompatToolMapping"
{
    "3532200938"
    {
        "name"     "DW-Proton Latest"
        "config"   ""
        "priority" "250"
    }
    "2506976826"
    {
        "name"     "DW-Proton Latest"
        "config"   ""
        "priority" "250"
    }
    "2568476331"
    {
        "name"     "DW-Proton Latest"
        "config"   ""
        "priority" "250"
    }
    "4264951319"
    {
        "name"     "DW-Proton Latest"
        "config"   ""
        "priority" "250"
    }
}

The direct Steam shortcuts use the existing Heroic prefixes by symlinking each shortcut's pfx directory:

ln -s "/home/dan/Games/Heroic/Prefixes/default/Zenless Zone Zero" \
  "/home/dan/.local/share/Steam/steamapps/compatdata/2568476331/pfx"

ln -s "/home/dan/Games/Heroic/Prefixes/default/Zenless Zone Zero" \
  "/home/dan/.local/share/Steam/steamapps/compatdata/4264951319/pfx"

ln -s "/home/dan/Games/Heroic/Prefixes/default/Arknights Endfield" \
  "/home/dan/.local/share/Steam/steamapps/compatdata/3532200938/pfx"

ln -s "/home/dan/Games/Heroic/Prefixes/default/Arknights Endfield" \
  "/home/dan/.local/share/Steam/steamapps/compatdata/2506976826/pfx"

If Steam already created a fresh prefix, move it aside before creating the symlink:

mv "/home/dan/.local/share/Steam/steamapps/compatdata/4264951319/pfx" \
  "/home/dan/.local/share/Steam/steamapps/compatdata/4264951319/pfx.steam-empty-bak"

Notes

  • gamescope is installed declaratively in servers/ui-mode/home.nix for optional testing.
  • Zenless Zone Zero (Direct Game) is the most promising shortcut: the game process starts and Steam starts gameoverlayui for it.
  • The Heroic-generated heroic://launch shortcuts can start the games, but Steam Overlay/Input may not attach because Steam tracks Heroic/Electron rather than the final game process.
  • Zenless launcher mode needs fresh Epic exchange-code arguments from Heroic/Legendary, so the direct launcher shortcut may not be reliable.
  • A wine64-preloader/rpcss.exe SIGSYS coredump was seen during startup, but the game continued and overlay was started; treat it as non-fatal unless the game crashes.