Files
DeeJanuz--frametop/pointer/bindings/vrcompositor_frame_controller_gazefirst.json
T
DeeJanuzandClaude Opus 5.5 2d985573c0 Gaze first: abandoned; keep the controller experiment for reference
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>
2026-09-30 21:11:40 -06:00

188 lines
5.6 KiB
JSON

{
"action_manifest_version": 0,
"alias_info": {},
"app_key": "openvr.component.vrcompositor",
"bindings": {
"/actions/system": {
"chords": [
{
"inputs": [
[
"/user/hand/left/input/system",
"held"
],
[
"/user/hand/left/input/trigger",
"click"
]
],
"output": "/actions/system/in/TakeScreenshot"
},
{
"inputs": [
[
"/user/hand/right/input/system",
"held"
],
[
"/user/hand/right/input/trigger",
"click"
]
],
"output": "/actions/system/in/TakeScreenshot"
},
{
"inputs": [
[
"/user/hand/left/input/system",
"held"
],
[
"/user/hand/right/input/trigger",
"click"
]
],
"output": "/actions/system/in/TakeScreenshot"
},
{
"inputs": [
[
"/user/hand/right/input/system",
"held"
],
[
"/user/hand/left/input/trigger",
"click"
]
],
"output": "/actions/system/in/TakeScreenshot"
}
],
"sources": [
{
"inputs": {},
"mode": "button",
"parameters": {
"haptic_amplitude": "0"
},
"path": "/user/hand/left/input/trigger"
},
{
"inputs": {},
"mode": "button",
"parameters": {
"haptic_amplitude": "0"
},
"path": "/user/hand/right/input/trigger"
},
{
"inputs": {
"click": {
"output": "/actions/system/in/ToggleDashboard"
},
"double": {
"output": "/actions/system/in/ToggleRoomView"
},
"held": {
"output": "/actions/system/in/SystemButtonChord"
}
},
"mode": "button",
"path": "/user/hand/left/input/system"
},
{
"inputs": {
"click": {
"output": "/actions/system/in/ToggleDashboard"
},
"double": {
"output": "/actions/system/in/ToggleRoomView"
},
"held": {
"output": "/actions/system/in/SystemButtonChord"
}
},
"mode": "button",
"path": "/user/hand/right/input/system"
}
]
},
"/actions/quickrecenter": {
"sources": [
{
"inputs": {
"long": {
"output": "/actions/quickrecenter/in/Recenter"
}
},
"parameters": {
"long_press_delay": 1.0,
"long_press_expiry": 4.0
},
"mode": "button",
"path": "/user/hand/left/input/system"
},
{
"inputs": {
"long": {
"output": "/actions/quickrecenter/in/Recenter"
}
},
"parameters": {
"long_press_delay": 1.0,
"long_press_expiry": 4.0
},
"mode": "button",
"path": "/user/hand/right/input/system"
}
]
},
"/actions/roomsetup": {
"sources": [
{
"inputs": {
"position": {
"output": "/actions/roomsetup/in/FloorFineAdjust"
}
},
"mode": "joystick",
"path": "/user/hand/left/input/thumbstick"
},
{
"inputs": {
"position": {
"output": "/actions/roomsetup/in/FloorFineAdjust"
}
},
"mode": "joystick",
"path": "/user/hand/right/input/thumbstick"
},
{
"inputs": {
"click": {
"output": "/actions/roomsetup/in/Accept"
}
},
"mode": "button",
"path": "/user/hand/right/input/a"
},
{
"inputs": {
"click": {
"output": "/actions/roomsetup/in/Back"
}
},
"mode": "button",
"path": "/user/hand/right/input/b"
}
]
}
},
"category": "steamvr_input",
"controller_type": "frame_controller",
"description": "Gaze first (Frametop, docs/gaze-first.md): the stock compositor binding with only the Steam button (dashboard, room view, recenter, screenshot chord) and room setup left. The relay reads the rest from vrserver's web socket.",
"name": "Frametop gaze first: Frame controller, Steam button only",
"options": {},
"simulated_actions": []
}