mirror of
https://github.com/lhns/steam-frame-nix.git
synced 2026-10-06 06:00:22 +02:00
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.
56 lines
2.4 KiB
Markdown
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.
|