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 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 23:08:10 +02:00
co-authored by Claude Opus 5.5
parent 7c5a9a7a1e
commit 537539ab5e
2 changed files with 24 additions and 3 deletions
+6 -2
View File
@@ -45,7 +45,10 @@ cat > "$out/install.sh" <<EOF
cd "\$(dirname "\$0")" || exit 1
# An update replaces the files of a running instance: stop it first.
pkill -f "/$exe( |\\\$)" 2>/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" <<EOF
# be deleted afterwards.
cd "\$(dirname "\$0")" || exit 1
pkill -f "/$exe( |\\\$)" 2>/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" <<EOF