wayvr/wlx-common/assets/openxr_actions.json5

505 lines
14 KiB
Plaintext

// 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"
}
}
]