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.
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-debuggeroneshot (a drop-in onsteamvr.service, runninginstall.sh steamvr-debugger-arm) stores the key's value in~/.local/state/steam-frame-nix/steamvr-debugger.armed, sets the key (withjq) and writes a runtime drop-in,/run/user/1000/systemd/user/steamvr.service.d/50-steam-frame-nix-debugger.conf, whoseExecStopPost=runs a restore script next to it (/run/user/1000/steam-frame-nix/,/usr/bintools only); - when SteamVR stops, the key goes back to its previous value (removed if
it wasn't there) and
.armedis 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.