Files
lhns--steam-frame-nix/docs/steamvr-debugger.md
T
Pierre Kisters aa9ca183f1 docs: README as overview + options, one docs page per feature
README keeps intro, feature list linking docs/, install, two sessions,
usage, the complete options table, changes outside Nix, rollback,
uninstall. Each feature's details (problem, what you get, configuration,
limitations, how it works) move to its own page in docs/; docs/dashboard.md
is split per feature and docs/changes-outside-nix.md becomes
docs/cleanup.md.
2026-09-29 01:02:28 +02:00

56 lines
2.4 KiB
Markdown

# SteamVR debugger
`steamvrDebugger.enable`, module `steamvr-debugger`. Automatic; nothing to
set. Options: [README, Options](../README.md#options).
## Problem
The [dashboard patches](ui-patches.md#steamvr-dashboard-patches) (and the
[VR keyboard](keyboard.md#swipe-and-suggestions)'s strip below/above the
keyboard) need SteamVR's DevTools port, which SteamVR opens only with its
setting `VRWebHelper/DebuggerEnabled`. That setting lives in
`~/.config/openvr/config/steamvr.vrsettings`, which SteamVR rewrites from
memory, so it can't be a Nix link and can't be edited while SteamVR runs.
## What you get
The port, enabled automatically when any patch in
`steamFrame.uiPatches.patches` has an `endpoint` on port 8087. The setting
is **set only while SteamVR runs**: set before every SteamVR start, put back
to its previous value when SteamVR stops, also after a rollback or uninstall
(without Nix). A value you set to `true` yourself is never touched.
**The first time, restart SteamVR once** (e.g. reboot); until then the
dashboard patches wait. Turned off, the setting is restored at the switch
(or when SteamVR stops, if it runs).
## Security
The port listens on `127.0.0.1` only; keep Developer Mode off (see
[DevTools on the LAN](ui-patches.md#devtools-on-the-lan)).
## How it works
Port: `VRWebHelper/DebuggerPort`, default 8087.
- before every SteamVR start, the `steamvr-webhelper-debugger` oneshot
(a drop-in on `steamvr.service`, running `install.sh steamvr-debugger-arm`)
stores the key's value in
`~/.local/state/steam-frame-nix/steamvr-debugger.armed`, sets the key
(with `jq`) and writes a runtime drop-in,
`/run/user/1000/systemd/user/steamvr.service.d/50-steam-frame-nix-debugger.conf`,
whose `ExecStopPost=` runs a restore script next to it
(`/run/user/1000/steam-frame-nix/`, `/usr/bin` tools only);
- when SteamVR stops, the key goes back to its previous value (removed if
it wasn't there) and `.armed` is removed.
The runtime files don't need Nix, which is why rollback and uninstall are
covered; they are gone at reboot, and `.armed` (the only trace after a
power loss) is resolved by the next SteamVR start or
`steam-frame-nix-cleanup`. Disabled, there is no unit; the switch (cleanup)
restores the key if SteamVR is stopped, otherwise the runtime drop-in does
when it stops.
Until SteamVR has been restarted once with the drop-in, the port is closed
and `steam-ui-patches` keeps polling it.