Files
DeeJanuz--frametop/pointer/helper/frametop-pointer.service
T
Nikita Koptelov 3aea571496 Start Frametop's SteamVR clients only once SteamVR is up (#6)
The pointer and gaze services need steamvr.service to be running (Requisite=), and ft-pointer, ft-screens, and ft-gaze connect as a background app before switching to overlay, so they never start a vrserver of their own. One started from the dev container never finds the headset, which left a reboot stuck in a loop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 51b4e79318)
2026-09-30 10:02:33 -06:00

26 lines
1.1 KiB
Desktop File

# Template: the installer replaces @REPO@ with the repo path on the Frame.
[Unit]
Description=Frametop pointer helper: the universal 3D mouse (cursor, collision, ft_pointer driver)
Documentation=file://@REPO@/README.md
# Needs SteamVR's IPC; it starts and stops with SteamVR.
After=steamvr.service frametop-input-relay.service
PartOf=steamvr.service
Requisite=steamvr.service
[Service]
# Runs in the dev container (built there against its libraries). The helper process
# lives in the container, so clean it up explicitly around distrobox enter.
# Start the container in a scope of its own first: started by this service (distrobox enter
# does that on demand), stopping the service would stop the container and all in it.
ExecStartPre=-@REPO@/scripts/container-up.sh
ExecStartPre=-/usr/bin/pkill -x ft-pointer
ExecStart=%h/.local/bin/distrobox enter dev -- @REPO@/pointer/helper/build/ft-pointer
ExecStopPost=-/usr/bin/pkill -x ft-pointer
Restart=on-failure
RestartSec=3
# The container session (conmon) ignores SIGTERM; don't wait 90 s for it.
TimeoutStopSec=5
[Install]
WantedBy=steamvr.service