# Steam Tinker Launch — Env Vars & Program Arguments Reference Source: `sonic2kk/steamtinkerlaunch` (single bash script, ~27,000 lines, v14.0.20250602). ## 1. Environment Variables Set by STL ### 1.1 Game Launch Time (most important) | Variable | Set When | Value | | ---------------------------------- | ------------------------------------------------- | ----------------------------------------- | | `MANGOHUD` | `USEMANGOHUD=1` + `MAHUVAR=1` | `1` | | `MANGOHUD_CONFIG` | `USEMANGOHUD=1` + `MAHUARGS` non-empty | `$MAHUARGS` | | `MANGOHUD_CONFIGFILE` | `USEMANGOHUD=1` + `MHIC` set | `$MHIC` | | `LD_PRELOAD` | `USEMANGOHUD=1` + `LDPMAHU=1` | `$LD_PRELOAD $MAHUBIN` | | `DXVK_FRAME_RATE` | `USEDXVKFRL=1` | `$DXVK_FPSLIMIT` | | `DXVK_HDR` | `DXVKHDR=1` | `1` | | `DXVK_CONFIG_FILE` | `DXVKCFG`/`DXDLSSCFG` set | `$STLDXVKCFG` or `$DXDLSSCFG` | | `PROTON_ENABLE_NVAPI` | `USENVAPI=1` | `1` | | `PROTON_HIDE_NVIDIA_GPU` | `USENVAPI=1` | `0` | | `WINEDEBUG` | `USEWINEDEBUG` set | `$STLWINEDEBUG` | | `WINEDLLOVERRIDES` | `USEWINEDLLOVERRIDES` set | `$WINEDLLOVERRIDES;$STLWINEDLLOVERRIDES` | | `WINEESYNC` | `ENABLE_WINESYNC=1` | `0` | | `WINEFSYNC` | `ENABLE_WINESYNC=1` | `0` | | `WINEFSYNC_FUTEX2` | `ENABLE_WINESYNC=1` | `0` | | `__NV_PRIME_RENDER_OFFLOAD` | `USEPRIMERUN=1` | `1` | | `__VK_LAYER_NV_optimus` | `USEPRIMERUN=1` | `NVIDIA_only` | | `__GLX_VENDOR_LIBRARY_NAME` | `USEPRIMERUN=1` → `nvidia` / `USEZINK=1` → `mesa` | `nvidia` or `mesa` | | `VK_ICD_FILENAMES` | `USEPRIMERUN=1` | `/usr/share/vulkan/icd.d/nvidia_icd.json` | | `MESA_LOADER_DRIVER_OVERRIDE` | `USEZINK=1` | `zink` | | `GALLIUM_DRIVER` | `USEZINK=1` | `zink` | | `SDL_VIDEODRIVER` | `SDLUSEWAYLAND=1` | `wayland` | | `ENABLE_GAMESCOPE_WSI` | `USEGAMESCOPE=1` + `USEGAMESCOPEWSI=1` | `1` | | `RADV_PERFTEST` | `STLRAD_PFTST` set | `$STLRAD_PFTST` | | `ENABLE_` | `VULKANPOSTPROCESSOR` set (e.g. `ENABLE_FSR=1`) | `1` | | `LC_ALL` | Always | `$LANG` | | `PULSE_LATENCY_MSEC` | `STL_PULSE_LATENCY_MSEC` set | `$STL_PULSE_LATENCY_MSEC` | | `DOTNET_ROOT` | Vortex mod manager | `$VTX_DOTNET_ROOT` | | `DOTNET_BUNDLE_EXTRACT_BASE_DIR` | Vortex mod manager | `$VTX_DOTNET_ROOT` | | `ONSTEAMDECK` | Detected Steam Deck | `1` | | `STEAM_COMPAT_CLIENT_INSTALL_PATH` | `$SROOT` set | `$SROOT` | | `STEAM_COMPAT_INSTALL_PATH` | `$MEGAMEDIR` / `$EFD` / `$STLDLDIR` | depending on game path | | `STEAM_COMPAT_DATA_PATH` | `$STL_COMPAT_DATA_PATH` / `$DESTCODA` | wine prefix | | `STEAM_COMPAT_APP_ID` | `$DPRS` / `$EUNID` | app id | | `SteamAppId` | Same as above | `$STEAM_COMPAT_APP_ID` | | `STEAM_COMPAT_TOOL_PATHS` | Custom SLR / tool paths | colon-joined paths | | `STEAM_COMPAT_LIBRARY_PATHS` | Set before game launch | | | `STEAM_COMPAT_MOUNTS` | Set before game launch | | | `VRPGWINXIS` | Game window XID | `$GAMEWINXID` | ### 1.2 VKD3D Configuration | Variable | Set When | Value | | -------------------------- | ---------------------------------------- | ------------------------------- | | `VKD3D_CONFIG` | `USERAYTRACING=1` or `$STL_VKD3D_CONFIG` | `dxr11` or `$STL_VKD3D_CONFIG` | | `VKD3D_DEBUG` | `$STL_VKD3D_DEBUG` set | `$STL_VKD3D_DEBUG` | | `VKD3D_SHADER_DEBUG` | `$STL_VKD3D_SHADER_DEBUG` set | `$STL_VKD3D_SHADER_DEBUG` | | `VKD3D_LOG_FILE` | `$STL_VKD3D_LOG_FILE` set | `$STL_VKD3D_LOG_FILE` | | `VKD3D_VULKAN_DEVICE` | `$STL_VKD3D_VULKAN_DEVICE` set | `$STL_VKD3D_VULKAN_DEVICE` | | `VKD3D_FILTER_DEVICE_NAME` | `$STL_VKD3D_FILTER_DEVICE_NAME` set | `$STL_VKD3D_FILTER_DEVICE_NAME` | | `VKD3D_DISABLE_EXTENSIONS` | `$STL_VKD3D_DISABLE_EXTENSIONS` set | `$STL_VKD3D_DISABLE_EXTENSIONS` | | `VKD3D_TEST_DEBUG` | `$STL_VKD3D_TEST_DEBUG` set | `$STL_VKD3D_TEST_DEBUG` | | `VKD3D_TEST_FILTER` | `$STL_VKD3D_TEST_FILTER` set | `$STL_VKD3D_TEST_FILTER` | | `VKD3D_TEST_EXCLUDE` | `$STL_VKD3D_TEST_EXCLUDE` set | `$STL_VKD3D_TEST_EXCLUDE` | | `VKD3D_TEST_PLATFORM` | `$STL_VKD3D_TEST_PLATFORM` set | `$STL_VKD3D_TEST_PLATFORM` | | `VKD3D_TEST_BUG` | `$STL_VKD3D_TEST_BUG` set | `$STL_VKD3D_TEST_BUG` | | `VKD3D_PROFILE_PATH` | `$STL_VKD3D_PROFILE_PATH` set | `$STL_VKD3D_PROFILE_PATH` | ### 1.3 Wine Configuration | Variable | Set When | Value | | ------------ | -------------- | ------------------------- | | `WINE` | `extWine64Run` | `$RUNWINE` | | `WINEARCH` | `extWine64Run` | `win64` or `$RUNWINEARCH` | | `WINEPREFIX` | `extWine64Run` | `$GPFX` or `$GWFX` | ## 2. Program Arguments Built ### 2.1 Command Chain (FINALSTARTCMD) The final launch command is built by `buildCustomCmdLaunch`: ``` FINALSTARTCMD = [ GMR?, GSC?, GAMESCOPEARGSARR?, OBSC?, MAHUBIN?, --dlsym? ] + [SLRCMD?] + [EXTSTARTCMD] + [PROTSTARTCMD] + [GAMESTARTCMD] + [GAMEARGSARR] ``` ### 2.2 Components | Component | Set By | Value | | ------------------------------ | ---------------------------------------------------------------- | --------------------------------- | | `GMR` (GameMode) | `USEGAMEMODERUN=1` | `$(command -v gamemoderun)` | | `GSC` (GameScope) | `USEGAMESCOPE=1` | `$(command -v gamescope)` | | `GAMESCOPEARGSARR` | `gameScopeArgs "$GAMESCOPE_ARGS"` | parsed args from `GAMESCOPE_ARGS` | | `OBSC` (OBS capture) | `USEOBSCAP=1` | `$(command -v obs-gamecapture)` | | `MAHUBIN` (MangoHud) | `USEMANGOHUD=1` + `LDPMAHU=0` | `$(command -v mangohud)` | | `--dlsym` | `MAHUDLSYM=1` | literal flag appended to MangoHud | | `SLRCMD` (Steam Linux Runtime) | `setSLRReap` | SLR command array | | `EXTSTARTCMD` | `setBoxtronCmd`/`setRobertaCmd`/`setLuxtorpedaCmd`/`setLinuxCmd` | game-specific command | ### 2.3 Proton Command (`PROTSTARTCMD`) Built by `setProtonCmd`: ``` PROTSTARTCMD = ( "$RUNPROTON" "$WFEAR" ) + GAMESTARTCMD ``` Where: - `$RUNPROTON` = path to proton binary - `$WFEAR` = `waitforexitandrun` ### 2.4 Wine Command Built by `setWineCmd`: ``` WINE=/bin/wine WINEARCH=win64 WINEDEBUG= WINEPREFIX= ``` ### 2.5 Game Command (`GAMESTARTCMD`) - Windows games: `$EFD/$GAMEEXE` (game exe path) - Native games: `$GAMERUN` or user-specified binary - Custom program: `$CUSTOMCMD` (with optional `$WICO` for Windows binaries) - Luxtorpeda: `"$LUXTORPEDACMD" "$LUXTORPEDAARGS" "$LUXEXE"` - Boxtron: `"$BOXTRONCMD" "$BOXTRONARGS" "$BOXTRONEXE"` - Roberta: `"$ROBERTACMD" "$ROBERTAARGS" "$ROBERTAEXE"` ### 2.6 Game Arguments (`GAMEARGSARR`) - `GAMEARGS` from user config - `HARDARGS` from user config (hardcoded overrides) - `SORTGARGS=1` → prepend Steam-provided args (`SLOARGS`) - `GAMEARGS` can be set to `"none"` (disabled) - `-dx12` appended when `USERAYTRACING=1` ## 3. GameScope Arguments Parsed from `GAMESCOPE_ARGS` config. Examples: - `--width 1280 --height 720` - `--fs` (fullscreen) - `--expose-wayland` - `--immersive` Always ends with `--` (required by GameScope). ## 4. MangoHud | Setting | Variable | Notes | | -------------- | --------------- | ------------------------------- | | Enable | `USEMANGOHUD=1` | | | Config string | `MAHUARGS` | Passed to `MANGOHUD_CONFIG` | | Config file | `MHIC` | Passed to `MANGOHUD_CONFIGFILE` | | Var mode | `MAHUVAR=1` | Sets `MANGOHUD=1` only | | Binary preload | `LDPMAHU=1` | Sets `LD_PRELOAD=$MAHUBIN` | | Dlsym mode | `MAHUDLSYM=1` | Appends `--dlsym` to MangoHud | ## 5. DXVK | Setting | Variable | Notes | | ----------- | --------------------- | -------------------------------------------------------- | | HDR | `DXVKHDR=1` | Sets `DXVK_HDR=1` | | Frame limit | `USEDXVKFRL=1` | Sets `DXVK_FRAME_RATE=$DXVK_FPSLIMIT` | | Config file | `DXVKCFG`/`DXDLSSCFG` | Sets `DXVK_CONFIG_FILE` | | NVAPI | `USENVAPI=1` | Sets `PROTON_ENABLE_NVAPI=1`, `PROTON_HIDE_NVIDIA_GPU=0` | ## 6. Vulkan Post-Processors | Processor | Env Var | | --------- | ------------------- | | FSR | `ENABLE_FSR=1` | | DLSS | `USEDLSS=1` | | VKBasalt | `ENABLE_VKBASALT=1` | ## 7. GameMode | Setting | Variable | Notes | | ------- | ------------------ | -------------------------------- | | Enable | `USEGAMEMODERUN=1` | Prepends `gamemoderun` to launch | ## 8. Custom Program (CustomCMD) | Setting | Variable | Notes | | -------------- | ---------------------- | ------------------------------------------- | | Enable | `CUSTOMCMD` set | User-specified executable | | Force Wine | `CUSTOMCMDFORCEWIN=1` | Force Wine/Proton wrapper | | External progs | `EXTPROGS_CUSTOMCMD=1` | Apply MangoHud/GameScope to custom program | | Fork | `FORK_CUSTOMCMD=1` | Fork process in background | | Only custom | `ONLY_CUSTOMCMD=1` | Skip game, run only custom command | | Wait | `WAITFORCUSTOMCMD=N` | Wait N seconds for custom command to start | | Use SLR | `CUSTOMCMD_USESLR=1` | Use Steam Linux Runtime with custom command | ## 9. Conty (Containerized Wine) | Setting | Variable | Notes | | ------------ | ------------ | --------------------------- | | Enable | `USECONTY=1` | | | Binary | `RUNCONTY` | `$CONTYDLDIR/$CONTY` | | Pick Conty | `PICKCONT` | user-specified Conty binary | | Custom Conty | `CUSTCONTY` | user-specified Conty binary | Launches as: `"$RUNCONTY" "${RUNCMD[@]}"` ## 10. Mod Organizer 2 (MO2) | Setting | Variable | Notes | | -------- | --------- | ------------------------------- | | Mode | `MO2MODE` | `disabled` / `enabled` / `auto` | | MO2 exe | `GMO2EXE` | Path to MO2 executable | | MO2 path | `MO2PATH` | Path to MO2 installation | Launches MO2 with: `STEAM_COMPAT_CLIENT_INSTALL_PATH=... STEAM_COMPAT_DATA_PATH=... $RUNPROTON run ${MO}.exe -i $MYINST $1` ## 11. Vortex Mod Manager | Setting | Variable | Notes | | ------------ | ----------------- | ------------------------------------------------------- | | Enable | `USEVORTEX=1` | | | Setup | `VORTEXSETUP` | | | Download dir | `VORTEXDLDIR` | | | .NET root | `VTX_DOTNET_ROOT` | Sets `DOTNET_ROOT` and `DOTNET_BUNDLE_EXTRACT_BASE_DIR` | | VPath | `VSPATH` | `$VORTEXDLDIR/$VORTEXSETUP` | ## 12. Shader Management | Setting | Variable | Notes | | ---------- | -------------- | ------------------------------ | | Shader dir | `SHADDESTDIR` | Default shader destination | | Repos | `SHADERREPOS` | Shader repository URLs | | Update | `SHADERUPDATE` | `1` = update shaders on launch | ## 13. Network/Internet Blocking | Setting | Variable | Notes | | -------------- | ----------------- | --------------------------------- | | Block internet | `BLOCKINTERNET=1` | Uses `unshare -n -r` to namespace | | `BLOCKCMD` | `unshare` | | | `BLOCKARGS` | `-n -r` | Network + user namespace | ## 14. Wine Debug | Setting | Variable | Notes | | -------------- | --------------------- | ------------------------ | | Debug channels | `STLWINEDEBUG` | e.g. `+relay,+timestamp` | | DLL overrides | `STLWINEDLLOVERRIDES` | e.g. `dxvk=n:d3d11` | ## 15. Game Window Management | Setting | Variable | Notes | | ------------ | ------------- | ------------------------- | | Window name | `GAMEWINDOW` | X11 window name to target | | Window XID | `GAMEWINXID` | X11 window XID | | `VRPGWINXIS` | `$GAMEWINXID` | Used for VR games | ## 16. Steam Deck Specific | Setting | Variable | Value | | ----------- | --------------------- | ----- | | Detected | `ONSTEAMDECK` | `1` | | Was update | `STEAMDECKWASUPDATE` | `0` | | Did install | `STEAMDECKDIDINSTALL` | `1` | | Steam Run | `STEAMDECKSTEAMRUN` | `0` | ## 17. Game Files | Setting | Variable | Notes | | --------- | ------------ | ------------------------- | | Game dir | `$EFD` | Executable file directory | | Game exe | `$GAMEEXE` | Game executable name | | Game path | `$GP` | Absolute game path | | Mega dir | `$MEGAMEDIR` | Game install directory | ## 18. Proton | Setting | Variable | Notes | | --------------- | ----------------------- | --------------------------- | | Use proton | `USEPROTON` | Proton version string | | Proton bin | `$PROTBIN` | Path to proton binary | | Compat data | `$STL_COMPAT_DATA_PATH` | Wine prefix path | | PFX | `$GPFX` | `$STL_COMPAT_DATA_PATH/pfx` | | Run proton | `RUNPROTON` | Full proton command | | Run wine server | `RUNWINESERVER` | `run_wine_server` path | | Proton version | `PROTONVERSION` | Version string | ## 19. Winetricks | Setting | Variable | Notes | | -------------- | ---------------- | -------------------------- | | Run winetricks | `RUNWINETRICKS` | Winetricks commands to run | | Winetricks bin | `$SYSWINETRICKS` | `winetricks` path | ## 20. GDB Debugging | Setting | Variable | Notes | | ---------- | ------------ | --------------- | | GDB run | `GDBGAMERUN` | GDB script path | | GDB script | `GDBRUN` | GDB script | | Run GDB | `RUN_GDB=1` | Enable GDB | ## 21. VR | Setting | Variable | Notes | | -------------- | -------------- | --------------------------- | | VR init | `VRINITLOCK` | VR initialization lock file | | VR init result | `VRINITRESULT` | VR init result file | ## 22. One-Time Run | Setting | Variable | Notes | | ------------ | ------------ | ------------------- | | One-time run | `USEONERT=1` | | | Custom path | `OPCUSTPATH` | Custom program path | ## 23. Standalone Proton | Setting | Variable | Notes | | ----------------- | ----------------------- | ---------------------- | | Use standalone | `USESTANDALONEPROTON=1` | | | Standalone proton | `$STLPROTDIR` | STL-managed proton dir | ## 24. GameScope Args | Setting | Variable | Notes | | -------------- | ---------------- | ------------------------------ | | GameScope args | `GAMESCOPE_ARGS` | Space-separated args | | MangoApp | `USEMANGOAPP=1` | Uses MangoHud App (Steam Deck) | ## 25. DXVK HUD | Setting | Variable | Notes | | -------- | ---------- | -------------------- | | DXVK HUD | `DXVK_HUD` | HUD elements to show | ## 26. Game Scope | Setting | Variable | Notes | | ------------- | ------------------- | --------------------------- | | GameScope | `USEGAMESCOPE=1` | Enable GameScope | | GameScope WSI | `USEGAMESCOPEWSI=1` | Enable GameScope WSI | | GameScope fix | `FIXGAMESCOPE=1` | Fix GameScope on Steam Deck | ## 27. OBS Capture | Setting | Variable | Notes | | ----------- | ------------- | ----------------------- | | OBS capture | `USEOBSCAP=1` | Enable OBS game capture | ## 28. Vulkan Post Processor | Setting | Variable | Notes | | --------- | --------------------- | ------------------- | | Vulkan PP | `VULKANPOSTPROCESSOR` | Post-processor name | ## 29. SDL Wayland | Setting | Variable | Notes | | ----------- | ----------------- | ------------------------ | | SDL Wayland | `SDLUSEWAYLAND=1` | Force SDL to use Wayland | ## 30. Wine DPI Scaling | Setting | Variable | Notes | | -------- | --------- | ----------------- | | Wine DPI | `WINEDPI` | DPI scaling value | ## 3. GameScope CLI Arguments Parsed from `GAMESCOPE_ARGS` config string. Always ends with `--`. ### 3.1 General Options | Flag | Description | Type | | ---------------------------- | ---------------------------------------------- | ---------------------- | | `-W ` | Show resolution width | number | | `-H ` | Show resolution height | number | | `-w ` | Internal resolution width (what games see) | number | | `-h ` | Internal resolution height | number | | `-r ` | Focused frame rate limit | 30/60/90/120/unlimited | | `-o ` | Unfocused frame rate limit | 30/60/90/120/unlimited | | `-f` | Fullscreen | bool | | `-b` | Borderless window | bool | | `-e` | Steam integration (fixes peripheral bugs) | bool | | `--force-windows-fullscreen` | Force windows fullscreen inside nested display | bool | | `--force-grab-cursor` | Keep cursor inside GameScope nested display | bool | | `-g` | Force grab keyboard | bool | | `--force-orientation ` | Orientation (left/right/normal/upsidedown) | dropdown | | `--cursor ` | Custom cursor image | file picker | | `-s ` | Mouse sensitivity | number (default 1.0) | ### 3.2 Filtering & Scaling Options **New filter mode (GameScope ≥3.11):** | Flag | Description | Type | | ------------- | ----------------------------------------------- | -------- | | `-F ` | Filter (none/linear/nearest/fsr/nis/pixel) | dropdown | | `-S ` | Scale mode (none/auto/integer/fit/fill/stretch) | dropdown | **Legacy filter mode (older GameScope):** | Flag | Description | Type | | ----------------------- | ------------------------------------------- | ------ | | `-i` | Integer scaling | bool | | `-n` | Nearest neighbor filtering | bool | | `-U ` | FSR 1.0 upscaling | bool | | `-Y` | NVIDIA Image Scaling v1.0.3 | bool | | `--fsr-sharpness ` | FSR sharpness (0-20, default 2) | number | | `-m ` | Max scale factor (Steam Deck defaults to 2) | number | ### 3.3 HDR Options | Flag | Description | Type | | --------------------------- | --------------------------------------- | ------ | | `--hdr-enabled` | Enable HDR | bool | | `--hdr-wide-gammut-for-sdr` | Wide gammut for SDR | bool | | `--hdr-sdr-content-nits` | SDR content nits (default 400) | number | | `--hdr-itm-enable` | Inverse tone mapping enabled | bool | | `--hdr-itm-sdr-nits` | ITM SDR nits (0-1000, default 100) | number | | `--hdr-itm-target-nits` | ITM target nits (0-10000, default 1000) | number | ### 3.4 VR Options | Flag | Description | Type | | ------------------------------------------ | -------------------------------------- | ----------- | | `--openvr` | Enable OpenVR | bool | | `--vr-overlay-explicit-name ` | SteamVR explicit name | text | | `--vr-overlay-default-name ` | SteamVR default name | text | | `--vr-overlay-key ` | SteamVR overlay key string | text | | `--vr-overlay-icon ` | SteamVR overlay icon | file picker | | `--vr-overlay-show-immediately` | Show VR overlay immediately | bool | | `--vr-overlay-enable-control-bar` | Enable SteamVR control bar | bool | | `--vr-overlay-enable-control-bar-keyboard` | Enable keyboard button on control bar | bool | | `--vr-overlay-enable-control-bar-close` | Enable close button on control bar | bool | | `--vr-scrolls-speed ` | VR trackpad scroll speed (default 8.0) | number | | `--vr-overlay-modal` | Show SteamVR overlay as modal | bool | ### 3.5 Embedded & Display Options | Flag | Description | Type | | ----------------------------- | ------------------------------------------------------------------------- | -------- | | `--default-touch-mode ` | Default touch action (hover/leftclick/rightclick/middleclick/passthrough) | dropdown | | `--immediate-flips` | Enable immediate flips (tearing allowed) | bool | | `--adaptive-sync` | Enable adaptive sync / VRR | bool | | `-O ` | Preferred GameScope output(s) | text | | `--generate-drm-mode ` | DRM mode generation (default/cvt/fixed) | dropdown | ### 3.6 Advanced Options | Flag | Description | Type | | --------------------------- | ---------------------------------------------- | ----------- | | `--stats-path ` | Path to write GameScope statistics | file picker | | `--backend ` | Backend (auto/sdl/wayland/drm/headless/openvr) | dropdown | | `-C ` | Cursor hide delay in milliseconds | number | | `--force-composition` | Disable direct scan-out | bool | | `--debug-hud` | Draw debug HUD | bool | | `--hdr-debug-force-support` | Force HDR support flag | bool | | `--hdr-debug-force-output` | Force HDR output on display | bool | | `--prefer-vk-device` | Prefer Vulkan device for compositing | bool | | `--expose-wayland` | Expose Wayland | bool | | `--rt` | Realtime scheduling | bool | | `--headless` | Headless mode | bool | ## 4. MangoHud CLI Arguments ### 4.1 Launch Command ``` $mangohud [--dlsym] ``` ### 4.2 Configuration | Setting | Variable | Description | | ----------- | -------- | ----------------------------------------------------------- | | `MAHUARGS` | Config | MangoHud config string (passed as `MANGOHUD_CONFIG`) | | `MHIC` | Config | MangoHud config file path (passed as `MANGOHUD_CONFIGFILE`) | | `MAHUVAR` | Config | If 1, sets `MANGOHUD=1` instead of binary | | `LDPMAHU` | Config | If 1, uses `LD_PRELOAD` instead of binary wrapper | | `MAHUDLSYM` | Config | If 1, appends `--dlsym` to mangohud | ## 5. Proton/Wine CLI Arguments ### 5.1 Proton Command ``` $RUNPROTON run [--verb] ``` Where `--verb` is the Steam runtime flag, `run` is the Proton subcommand. ### 5.2 Wine Command ``` WINE=/bin/wine WINEARCH=win64 WINEDEBUG= WINEPREFIX= ``` ### 5.3 Proton Environment Variables | Variable | Description | | ---------------------------------- | ------------------------- | | `PROTON_LOG` | Enable Proton logging | | `PROTON_LOG_DIR` | Proton log directory | | `PROTON_DEBUG_DIR` | Proton debug directory | | `PROTON_DUMP_DEBUG_COMMANDS` | Dump debug commands | | `PROTON_FORCE_LARGE_ADDRESS_AWARE` | Force large address aware | | `PROTON_NO_D3D10` | Disable D3D10 | | `PROTON_NO_D3D11` | Disable D3D11 | | `PROTON_NO_ESYNC` | Disable esync | | `PROTON_NO_FSYNC` | Disable fsync | | `PROTON_ENABLE_NVAPI` | Enable NVAPI | | `PROTON_HIDE_NVIDIA_GPU` | Hide NVIDIA GPU | | `PROTON_USE_WINED3D` | Use wined3d | | `NETOPTS` | Network options | ## 6. DXVK CLI Arguments ### 6.1 DXVK HUD Options (comma-separated) ``` DXVK_HUD= ``` | Option | Description | | ------------- | ----------------- | | `1` | Frame count | | `devinfo` | Device info | | `fps` | Frames per second | | `frametimes` | Frame times | | `submissions` | Submission count | | `drawcalls` | Draw call count | | `pipelines` | Pipeline count | | `memory` | Memory usage | | `gpuload` | GPU load | | `version` | DXVK version | | `api` | API version | | `compiler` | Shader compiler | | `samplers` | Sampler count | | `full` | Full HUD | Additional DXVK HUD options: - `scale=` — HUD scale factor ### 6.2 DXVK Configuration | Variable | Description | | ------------------ | ----------------------------------------- | | `DXVK_HUD` | HUD options (see above) | | `DXVK_LOG_LEVEL` | Log level (info/error/perf/debug/verbose) | | `DXVK_CONFIG_FILE` | Path to DXVK config file | | `DXVK_FRAME_RATE` | FPS limit | | `DXVK_HDR` | HDR enable | ## 7. VKD3D CLI Arguments | Variable | Description | | -------------------------- | ------------------------------------------- | | `VKD3D_CONFIG` | Config string (e.g. `dxr11` for raytracing) | | `VKD3D_DEBUG` | Debug level | | `VKD3D_SHADER_DEBUG` | Shader debug level | | `VKD3D_LOG_FILE` | Log file path | | `VKD3D_VULKAN_DEVICE` | Vulkan device to use | | `VKD3D_FILTER_DEVICE_NAME` | Filter devices by name | | `VKD3D_DISABLE_EXTENSIONS` | Disable Vulkan extensions | | `VKD3D_TEST_DEBUG` | Test debug level | | `VKD3D_TEST_FILTER` | Test filter | | `VKD3D_TEST_EXCLUDE` | Test exclude | | `VKD3D_TEST_PLATFORM` | Test platform | | `VKD3D_TEST_BUG` | Test bug | | `VKD3D_PROFILE_PATH` | Profile path | ## 8. Wine Environment Variables | Variable | Description | | --------------------------------- | --------------------------- | | `WINE_FULLSCREEN_FSR` | FSR in Wine (1=enabled) | | `USEFWS` | FSR in Wine (1=enabled) | | `WINE_FULLSCREEN_FSR_STRENGTH` | FSR strength | | `WINE_FULLSCREEN_FSR_MODE` | FSR mode | | `WINE_FULLSCREEN_FSR_CUSTOM_MODE` | Custom FSR mode | | `WINE_FULLSCREEN_INTEGER_SCALING` | Integer scaling (1=enabled) | | `WINEDLLOVERRIDES` | DLL overrides | | `WINEDEBUG` | Debug channels | | `WINEESYNC` | Esync (0=disabled) | | `WINEFSYNC` | Fsync (0=disabled) | | `WINEFSYNC_FUTEX2` | Fsync futex2 (0=disabled) | ## 31. Raytracing | Setting | Variable | Notes | | ---------- | ----------------- | ------------------------------------------------------- | | Raytracing | `USERAYTRACING=1` | Sets `VKD3D_CONFIG=dxr11`, appends `-dx12` to game args | ## 32. PrimeRun (NVIDIA Prime Render Offload) | Setting | Variable | Notes | | ------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Enable | `USEPRIMERUN=1` | Sets `__NV_PRIME_RENDER_OFFLOAD=1`, `__VK_LAYER_NV_optimus=NVIDIA_only`, `__GLX_VENDOR_LIBRARY_NAME=nvidia`, `VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json` | ## 33. Zink (Vulkan-to-Gallium) | Setting | Variable | Notes | | ------- | ----------- | ------------------------------------------------------------------------------------------------ | | Enable | `USEZINK=1` | Sets `__GLX_VENDOR_LIBRARY_NAME=mesa`, `MESA_LOADER_DRIVER_OVERRIDE=zink`, `GALLIUM_DRIVER=zink` | ## 34. WineSync | Setting | Variable | Notes | | ------- | ------------------- | ------------------------------------------------------- | | Enable | `ENABLE_WINESYNC=1` | Sets `WINEESYNC=0`, `WINEFSYNC=0`, `WINEFSYNC_FUTEX2=0` | ## 35. X64dbg | Setting | Variable | Notes | | --------------- | -------------------------- | --------------------------- | | Run X64dbg | `RUN_X64DBG=1` | Enable x64dbg | | Attach on start | `X64DBG_ATTACHONSTARTUP=1` | Attach x64dbg on game start | ## 36. Dependencies | Setting | Variable | Notes | | -------- | ------------ | --------------------- | | Run deps | `RUN_DEPS=1` | Install dependencies | | Dep exe | `DEPSEXE` | Dependency executable | ## 37. Boxtron | Setting | Variable | Notes | | ------- | -------------- | ------------------------------ | | Enable | `USEBOXTRON=1` | | | Args | `BOXTRONARGS` | `--wait-before-run` by default | | Binary | `BOXTRONCMD` | Boxtron path | | Exe | `BOXTRONEXE` | Boxtron exe | ## 38. Roberta | Setting | Variable | Notes | | ------- | -------------- | ------------------------------ | | Enable | `USEROBERTA=1` | | | Args | `ROBERTAARGS` | `--wait-before-run` by default | | Binary | `ROBERTACMD` | Roberta path | | Exe | `ROBERTAEXE` | Roberta exe | ## 39. Luxtorpeda | Setting | Variable | Notes | | ------- | ----------------- | --------------- | | Enable | `USELUXTORPEDA=1` | | | Args | `LUXTORPEDAARGS` | Luxtorpeda args | | Binary | `LUXTORPEDACMD` | Luxtorpeda path | | Exe | `LUXEXE` | Luxtorpeda exe | ## 40. Game Mode | Setting | Variable | Notes | | --------- | ------------------ | --------------- | | Game Mode | `USEGAMEMODERUN=1` | Enable GameMode |