Skip to content

Support System Button in Knuckles Bindings#315

Open
prikhi wants to merge 1 commit intoSupreeeme:mainfrom
prikhi:support-index-system-button
Open

Support System Button in Knuckles Bindings#315
prikhi wants to merge 1 commit intoSupreeeme:mainfrom
prikhi:support-index-system-button

Conversation

@prikhi
Copy link
Contributor

@prikhi prikhi commented Feb 19, 2026

Modify the profiles::knuckles module to allow binding of actions to system/touch & system/click for both hands. No transformation is necessary as the path mapping is identical between the OpenXR spec & SteamVR.

Note that OpenXR runtimes may choose to ignore bindings to the system buttons.

Modify the `profiles::knuckles` module to allow binding of actions to
`system/touch` & `system/click` for both hands. No transformation is
necessary as the path mapping is identical between the OpenXR spec &
SteamVR.

Note that OpenXR runtimes _may_ choose to ignore bindings to the system
buttons.
"input/b",
"input/trigger",
"input/thumbstick",
"input/system",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

click & touch for both hands as per openxr spec: https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#_valve_index_controller_profile

and as in steamvr drivers:

// driver/.../index_controller_profile.json
  "input_source" :
  {
    "/input/system" : {
      "type" : "button",
      "click" : true,
      "touch" : true,
      "binding_image_point" : [ 34,45 ],
      "order" : 1
    },
// ...

With Moss 2 binding file as an example:

            {
               "inputs" : {
                  "click" : {
                     "output" : "/actions/main/in/ui_menu"
                  }
               },
               "mode" : "button",
               "path" : "/user/hand/left/input/system"
            },

@@ -1,273 +1,297 @@
{
"bindings": {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ugh... I can add back the tabs if desired...
(forgot to turn nvim autoformat of json off)

@prikhi prikhi changed the title Support System Button Knuckles Bindings Support System Button in Knuckles Bindings Feb 19, 2026
@Supreeeme
Copy link
Owner

The spec says that system buttons may not be available for application use. In practice what this means is that depending on what runtime it's running under, suggesting bindings using the system button may actually error out with XR_ERROR_PATH_UNSUPPORTED. For this reason, along with the fact that I'm pretty sure even binding to the system button in SteamVR requires changing some setting, I opted to not use system button bindings. I'm not really against supporting them at all, but this case needs to be handled.

@prikhi
Copy link
Contributor Author

prikhi commented Feb 22, 2026

In practice [...] may actually error out with XR_ERROR_PATH_UNSUPPORTED

Ah good to know, the spec says it "must" accept it but is free to ignore it so figured it wouldn't cause any problems:
https://registry.khronos.org/OpenXR/specs/1.1/man/html/xrSuggestInteractionProfileBindings.html

I'm not really against supporting them at all, but this case needs to be handled.

aight thanks, will poke around to see where we're doing this & if the error can be handled cleanly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants