# Template: the installer replaces @REPO@ with the repo path on the Frame. [Unit] Description=Frametop input relay: stable virtual mouse and keyboard for SteamVR Documentation=file://@REPO@/README.md # SteamVR opens input devices only at startup, so the virtual devices must exist first. Before=steamvr.service [Service] # READY=1 is sent only after the virtual devices exist. Type=notify NotifyAccess=main ExecStart=/usr/bin/python3 @REPO@/input/input-relay.py Restart=on-failure RestartSec=1 # systemd holds the virtual devices' file descriptors across relay restarts, # so SteamVR keeps the same devices. Clear with: systemctl --user clean --what=fdstore FileDescriptorStoreMax=4 FileDescriptorStorePreserve=yes [Install] WantedBy=default.target steamvr.service