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

2.4 KiB

SteamVR debugger

steamvrDebugger.enable, module steamvr-debugger. Automatic; nothing to set. Options: README, Options.

Problem

The dashboard patches (and the VR keyboard'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).

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.