From 537539ab5e5ad941061b15872329d7f835a72786 Mon Sep 17 00:00:00 2001 From: Matzman Date: Wed, 7 Oct 2026 23:08:10 +0200 Subject: [PATCH] Run the manifest commands without a display The first deploy to the Steam Frame aborted in install.sh: OVRAS creates its QApplication before it handles --force-install-manifest, and Qt's default platform plugin (xcb) aborts when there is no display, as over SSH. Registering and unregistering draw nothing, so the generated install.sh and uninstall.sh now run them with QT_QPA_PLATFORM=offscreen. The normal start keeps DISPLAY=:0, as rendering needs a real context. Co-Authored-By: Claude Opus 5.5 --- build_scripts/steamframe/package-release.sh | 8 ++++++-- docs/steamframe/PROGRESS.md | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/build_scripts/steamframe/package-release.sh b/build_scripts/steamframe/package-release.sh index 1daa90f..db28294 100755 --- a/build_scripts/steamframe/package-release.sh +++ b/build_scripts/steamframe/package-release.sh @@ -45,7 +45,10 @@ cat > "$out/install.sh" </dev/null && sleep 1 -./$exe --force-install-manifest || exit 1 +# OVRAS creates its QApplication before handling the manifest options, and +# Qt's default platform plugin (xcb) aborts without a display, e.g. over SSH. +# Registering draws nothing, so use the display-less "offscreen" plugin. +QT_QPA_PLATFORM=offscreen ./$exe --force-install-manifest || exit 1 # Start now. Over SSH there is no display; Qt needs one even for off-screen # rendering, so use the Frame's (:0). DISPLAY="\${DISPLAY:-:0}" nohup ./$exe >/dev/null 2>&1 & @@ -58,7 +61,8 @@ cat > "$out/uninstall.sh" </dev/null -exec ./$exe --force-remove-manifest +# No display needed for unregistering (see install.sh). +exec env QT_QPA_PLATFORM=offscreen ./$exe --force-remove-manifest EOF cat > "$out/run.sh" <@` (SteamVR running). | # | Check | Criterion | Result | |---|---|---|---| -| T1 | `install.sh`: registration works (log: "Manifest reinstalled", via Background) | R2 | open | +| T1 | `install.sh`: registration works (log: "Manifest reinstalled", via Background) | R2 | first try failed: abort without a display (fixed, see above); retest open | | T2 | Tab appears in the dashboard, UI correct (OpenGL) | R2, R3 | open | | T3 | `./run.sh vulkan`: UI correct | R3 | open | | T4 | Laser right way up, click, scrolling on several pages (both APIs) | R4 | open |