# punktfunk host configuration (Windows) — read by the `PunktfunkHost` service. # # `punktfunk-host service install` writes a default copy of this to # %ProgramData%\punktfunk\host.env # Edit that file (not this one) and restart the service to apply: # punktfunk-host service stop # punktfunk-host service start # # Format: KEY=VALUE per line; '#' starts a comment. The service loads these into its environment # and passes PUNKTFUNK_* and RUST_LOG through to the host it launches into the active session. # Hardware encode backend. `auto` (default) detects the GPU vendor: NVIDIA->nvenc (direct SDK), # AMD->amf, Intel->qsv (both libavcodec). Force one with: nvenc | amf | qsv | sw (software H.264). # nvenc needs the `--features nvenc` build; amf/qsv need the `--features amf-qsv` build (FFmpeg DLLs # ship in the installer). The published installer is built with all three. PUNKTFUNK_ENCODER=auto # Video source: `virtual` creates a per-client virtual display at the client's exact resolution + # refresh — the flagship mode. Requires the bundled pf-vdisplay indirect display driver installed. PUNKTFUNK_VIDEO_SOURCE=virtual # Virtual-display backend: `pf` = the all-Rust pf-vdisplay IddCx driver the installer bundles (the # shipped driver; leave as the default). `sudovda` selects the legacy backend if one is present. PUNKTFUNK_VDISPLAY=pf # Capture straight from the pf-vdisplay driver's shared ring — the validated zero-copy path (incl. the # secure desktop). Falls back to DDA if the driver can't attach. Set to 0 to force WGC/DDA capture. PUNKTFUNK_IDD_PUSH=1 # Capture the secure desktop (UAC / lock / login) so the stream survives those transitions. PUNKTFUNK_SECURE_DDA=1 # Log level (info | debug | trace). Logs land in %ProgramData%\punktfunk\logs\. RUST_LOG=info # The host subcommand the service launches. Default: `serve --gamestream` (native punktfunk/1 host # ALWAYS on + the GameStream/Moonlight-compat planes). Use `serve` for a SECURE native-only host # (no plain-HTTP pairing / legacy GCM nonce reuse — security-review #5/#9). Uncomment to override. #PUNKTFUNK_HOST_CMD=serve --gamestream # Multi-GPU boxes only: force the NVENC/Desktop-Duplication GPU by Description substring. Leave # unset on single-GPU machines (the default auto-picks the discrete adapter). #PUNKTFUNK_RENDER_ADAPTER=4090 # Keep a per-client virtual display alive briefly after disconnect so a quick reconnect reuses it # (no display connect/disconnect chime). Default 10000 ms. #PUNKTFUNK_MONITOR_LINGER_MS=10000