The last state of the experiment, kept on this branch only:
- input/gazefirst.py, input/steamui.py: the relay reading the controllers from
vrserver's web socket, switching the compositor binding, and driving the Steam
UI filter (whose block now expires unless renewed).
- The helper's trigger and bumper holds (steered by the controller's position),
the laser keeper, and the click gate that waits for the laser.
- pointer/probe/focustest (overlay flag 1 << 4, as an input client too),
vrsetting (SteamVR settings through vrserver), lasertest --reclaim.
Every press and release Steam sees takes SteamVR out of laser mode, and taking
the laser back breaks clicks and drags. See docs/gaze-controllers.md on
experimental.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>