// Available bindings: // // -- click -- // primary click to interact with the watch or overlays. required // // -- grab -- // used to manipulate position, size, orientation of overlays in 3D space // // -- show_hide -- // used to quickly hide and show your last selection of screens + keyboard // // -- space_drag -- // move your stage (playspace drag) // // -- toggle_dashboard -- // run or toggle visibility of a previously configured WayVR-compatible dashboard // // -- space_rotate -- // rotate your stage (playspace rotate, WIP) // // -- space_reset -- // reset your stage (reset the offset from playspace drag) // // -- click_modifier_right -- // while this is held, your pointer will turn ORANGE and your mouse clicks will be RIGHT clicks // // -- click_modifier_middle -- // while this is held, your pointer will turn PURPLE and your mouse clicks will be MIDDLE clicks // // -- move_mouse -- // when using `focus_follows_mouse_mode`, you need to hold this for the mouse to move // // -- pose, haptic -- // do not mess with these, unless you know what you're doing [ // Eye+hand interaction // eye is aim, left pinch is grab, right pinch is click { profile: "/interaction_profiles/ext/eye_gaze_interaction", pose: { handsfree: "/user/eyes_ext/input/gaze_ext/pose", }, }, { profile: "/interaction_profiles/ext/hand_interaction_ext", click: { handsfree: "/user/hand/right/input/pinch_ext/value" }, grab: { handsfree: "/user/hand/left/input/pinch_ext/value", }, }, // Fallback controller, intended for testing //{ // profile: "/interaction_profiles/khr/simple_controller", // pose: { // left: "/user/hand/left/input/aim/pose", // right: "/user/hand/right/input/aim/pose" // }, // haptic: { // left: "/user/hand/left/output/haptic", // right: "/user/hand/right/output/haptic" // }, // click: { // right trigger is click // right: "/user/hand/right/input/select/click" // }, // grab: { // left trigger is grab // left: "/user/hand/left/input/select/click", // }, // show_hide: { // left: "/user/hand/left/input/menu/click" // } //}, // Oculus Touch Controller. Compatible with Quest 2, Quest 3, Quest Pro { profile: "/interaction_profiles/oculus/touch_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/value", right: "/user/hand/right/input/squeeze/value" }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, show_hide: { double_click: true, left: "/user/hand/left/input/y/click", }, space_drag: { left: "/user/hand/left/input/menu/click", }, space_reset: { double_click: true, left: "/user/hand/left/input/menu/click", }, click_modifier_right: { left: "/user/hand/left/input/y/touch", right: "/user/hand/right/input/b/touch" }, click_modifier_middle: { left: "/user/hand/left/input/x/touch", right: "/user/hand/right/input/a/touch" }, move_mouse: { // used with focus_follows_mouse_mode left: "/user/hand/left/input/trigger/touch", right: "/user/hand/right/input/trigger/touch" } }, // Index controller { profile: "/interaction_profiles/valve/index_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, alt_click: { // left trackpad is space_drag right: "/user/hand/right/input/trackpad/force", }, grab: { left: "/user/hand/left/input/squeeze/force", right: "/user/hand/right/input/squeeze/force" }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, toggle_dashboard: { double_click: false, right: "/user/hand/right/input/system/click", }, show_hide: { double_click: true, left: "/user/hand/left/input/b/click", }, space_drag: { left: "/user/hand/left/input/trackpad/force", // right trackpad is alt_click }, space_reset: { left: "/user/hand/left/input/trackpad/force", double_click: true, }, click_modifier_right: { left: "/user/hand/left/input/b/touch", right: "/user/hand/right/input/b/touch" }, click_modifier_middle: { left: "/user/hand/left/input/a/touch", right: "/user/hand/right/input/a/touch" }, move_mouse: { // used with focus_follows_mouse_mode left: "/user/hand/left/input/trigger/touch", right: "/user/hand/right/input/trigger/touch" } }, // Steam Frame Controller { profile: "/interaction_profiles/valve/frame_controller_valve", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, click: { left: "/user/hand/left/input/trigger/click", right: "/user/hand/right/input/trigger/click" }, grab: { left: "/user/hand/left/input/squeeze/click", right: "/user/hand/right/input/squeeze/click" }, alt_click: { }, show_hide: { left: "/user/hand/left/input/view/click" }, toggle_dashboard: { right: "/user/hand/right/input/menu/click" }, space_drag: { left: "/user/hand/left/input/system/click" }, space_rotate: { right: "/user/hand/right/input/system/click", double_click: true }, space_reset: { left: "/user/hand/left/input/system/click", double_click: true }, click_modifier_right: { left: "/user/hand/left/input/dpad_right/touch", right: "/user/hand/right/input/x/touch" }, click_modifier_middle: { left: "/user/hand/left/input/dpad_left/touch", right: "/user/hand/right/input/b/touch" }, move_mouse: { left: "/user/hand/left/input/trigger/touch", right: "/user/hand/right/input/trigger/touch" }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" } }, // Vive controller { profile: "/interaction_profiles/htc/vive_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/click", right: "/user/hand/right/input/squeeze/click" }, scroll: { left: "/user/hand/left/input/trackpad/y", right: "/user/hand/right/input/trackpad/y" }, scroll_horizontal: { left: "/user/hand/left/input/trackpad/x", right: "/user/hand/right/input/trackpad/x" }, toggle_dashboard: { right: "/user/hand/right/input/system/click", }, show_hide: { left: "/user/hand/left/input/system/click", }, space_drag: { right: "/user/hand/right/input/menu/click", }, space_reset: { double_click: true, right: "/user/hand/right/input/menu/click", }, move_mouse: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value", threshold_left: [ 0.1, 0.2 ], threshold_right: [ 0.1, 0.2 ] }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" } }, // Windows Mixed Reality controller { profile: "/interaction_profiles/microsoft/motion_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/click", right: "/user/hand/right/input/squeeze/click" }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, show_hide: { left: "/user/hand/left/input/menu/click", }, space_drag: { double_click: true, right: "/user/hand/right/input/menu/click", }, click_modifier_right: { left: "/user/hand/left/input/trackpad/touch", right: "/user/hand/right/input/trackpad/touch" }, move_mouse: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value", threshold_left: [ 0.1, 0.2 ], threshold_right: [ 0.1, 0.2 ] }, }, // HP Reverb G2 controller { profile: "/interaction_profiles/hp/mixed_reality_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/value", right: "/user/hand/right/input/squeeze/value" }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, show_hide: { left: "/user/hand/left/input/menu/click", }, space_drag: { double_click: true, right: "/user/hand/left/input/menu/click", }, move_mouse: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value", threshold_left: [ 0.1, 0.2 ], threshold_right: [ 0.1, 0.2 ] }, }, { profile: "/interaction_profiles/khr/generic_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/value", right: "/user/hand/right/input/squeeze/value" }, show_hide: { left: "/user/hand/left/input/secondary/click", double_click: true }, click_modifier_right: { left: "/user/hand/left/input/secondary/click", right: "/user/hand/right/input/secondary/click" }, click_modifier_middle: { left: "/user/hand/left/input/primary/click", right: "/user/hand/right/input/primary/click" }, move_mouse: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value", threshold_left: [ 0.1, 0.2 ], threshold_right: [ 0.1, 0.2 ] }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" } }, { profile: "/interaction_profiles/samsung/odyssey_controller", pose: { left: "/user/hand/left/input/aim/pose", right: "/user/hand/right/input/aim/pose" }, click: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value" }, grab: { left: "/user/hand/left/input/squeeze/click", right: "/user/hand/right/input/squeeze/click" }, show_hide: { left: "/user/hand/left/input/menu/click" }, space_drag: { right: "/user/hand/right/input/menu/click", double_click: true }, click_modifier_right: { left: "/user/hand/left/input/trackpad/touch", right: "/user/hand/right/input/trackpad/touch" }, click_modifier_middle: {}, move_mouse: { left: "/user/hand/left/input/trigger/value", right: "/user/hand/right/input/trigger/value", threshold_left: [ 0.1, 0.2 ], threshold_right: [ 0.1, 0.2 ] }, scroll: { left: "/user/hand/left/input/thumbstick/y", right: "/user/hand/right/input/thumbstick/y" }, scroll_horizontal: { left: "/user/hand/left/input/thumbstick/x", right: "/user/hand/right/input/thumbstick/x" }, haptic: { left: "/user/hand/left/output/haptic", right: "/user/hand/right/output/haptic" } } ]