Log SteamVR-started instances to logs/<exe>.log

The manifest passes --log-file, so a settings error (CFG-2) ends up in a
log file in the install folder. Package README and docs updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 22:24:36 +02:00
co-authored by Claude Opus 5.5
parent 179316db52
commit 873892c129
5 changed files with 16 additions and 6 deletions
+2
View File
@@ -240,6 +240,8 @@ hides world surfaces itself. Keep the teardown rule: overlays, then SteamVR, the
RPATH `$ORIGIN/../lib`.
- `manifest.vrmanifest` uses paths relative to itself, so `--install-manifest` works from both
the build tree and an install.
- The manifest passes `--log-file logs/<exe>.log` (`arguments`), so SteamVR-started instances
log to the install folder (or `build/<preset>/logs/` from the build tree).
- `cmake/OpenVR.cmake` downloads only `openvr.h`, `LICENSE` and the matching
`bin/linux64|linuxarm64/libopenvr_api.so` into `third_party/openvr-<ver>/` (gitignored).
- **Deploying to the Frame uses its system Qt by default.** Bundling Qt is the fallback for
+6 -3
View File
@@ -8,9 +8,9 @@ CLAUDE.md ("Working rules").
- **Implementation iteration 1 (DSH-1 and configuration), phase 3 (implementation) done,
waiting for the user's approval.** All plan steps are implemented and committed; next is
phase 4, testing on the Frame (plan item 10).
- **Open point found:** started by SteamVR, the app writes no log file (the manifest passes no
`--log-file`, stderr goes to SteamVR). CFG-2 wants the settings error "in the log file and
on stderr". To be decided.
- Started by SteamVR, the app now logs to `logs/frame-assistant.log` in the install folder:
the manifest passes `--log-file` (CFG-2 wants the settings error in a log file). Whether
SteamVR on the Frame honours the manifest's `arguments` is checked in phase 4.
## Next steps
@@ -95,6 +95,9 @@ Known limitation: the bundled-Qt package does not support WebEngine in this iter
generated QML type registration includes headers by file name; Qt ≥ 6.9 hints at
`WebEngineProfilePrototype` (not in the Frame's 6.8). Deviations: `HaWebUi` lives in the
app, not the library; the password warning needs a password in the file.
- Log file for SteamVR-started instances: the manifest passes `--log-file
logs/frame-assistant.log` (user's choice among: default log path in the app, manifest
argument, document only).
- Not verified yet: WebEngine with a URL in the off-screen pipeline (Frame, phase 4); the
bundled package (not supported for WebEngine in this iteration).
- Plan for implementation iteration 1 approved; phase 3 started.
+3
View File
@@ -42,6 +42,9 @@ scripts/deploy-to-frame.sh steamos@<frame> # rsync the newest package to ~/<exe>
A release folder contains the program, `install.sh` (install or update: stops a running
instance, registers with SteamVR, starts it), `uninstall.sh`, `README.txt` and the licenses.
The app logs to `logs/frame-assistant.log` in that folder (passed by the manifest), and
needs a settings file first (`~/.config/frameassistant/config.json`, from
`share/frameassistant/config.example.json`; see README.md, "Settings").
SteamVR stores the folder's absolute path, so after moving the folder, run `install.sh`
again.
+1
View File
@@ -4,6 +4,7 @@
"app_key": "@VRDASH_APP_KEY@",
"launch_type": "binary",
"@VRDASH_MANIFEST_BINARY_KEY@": "../../@CMAKE_INSTALL_BINDIR@/@VRDASH_EXECUTABLE_NAME@",
"arguments": "--log-file logs/@VRDASH_EXECUTABLE_NAME@.log",
"is_dashboard_overlay": true,
"strings": {
"en_us": {
+4 -3
View File
@@ -86,14 +86,15 @@ chmod +x "$out/install.sh" "$out/uninstall.sh"
echo " cp share/$project/config.example.json ~/.config/$project/config.json"
echo " chmod 600 ~/.config/$project/config.json"
echo " then edit it (device name, MQTT broker, Home Assistant URL)."
echo " Without valid settings the app exits; to see why, run"
echo " ./bin/$exe --desktop in a terminal."
echo " Without valid settings the app exits; the reason is in"
echo " logs/$exe.log."
echo
echo "Install / update: ./install.sh (SteamVR must be running)"
echo " SteamVR remembers this folder's location: after moving it,"
echo " run ./install.sh again."
echo "Uninstall: ./uninstall.sh"
echo "Logs: logs/install.log; run ./bin/$exe --help for options"
echo "Logs: logs/$exe.log (the app), logs/install.log (install.sh);"
echo " run ./bin/$exe --help for options"
echo
echo "License: MIT (LICENSE). Third-party notices: share/doc/$project/."
} > "$out/README.txt"