BOLL7708 / OpenVR2Key

Simulates key presses from SteamVR input
120 stars 16 forks source link

Mappings not configurable - "Legacy bindings" show only names of inputs #45

Open pikaro opened 1 year ago

pikaro commented 1 year ago

I'm not sure if your documentation isn't up to date or if something is going wrong locally, but I'm unable to configure the mappings on the SteamVR side in 0.57 and 0.61. The binding menu only shows the bindable actions by the name of what the inputs are on the SteamVR side, i. e. "Left Grip Touch" etc., not with the "L15" etc. names that are required to map them to your application's internal input slots. The binding also explicitly shows up as "Legacy binding" - not sure if that's normal, the binding UI looks different than it does in your video.

For a practical example, this means that I can map what is predefined as L15, which is Left Grip Touch, but I can't bind Left Grip Grab - OpenVR2Key doesn't show any additional keys being pressed when the grab action triggers despite there being haptic feedback. Similarly, I can map pressed keys but not touched or held ones, axes are predefined etc. FWIW, binding and using these actions works as expected, though.

I tried purging everything related to OpenVR2Keys in Steam and downgraded from the latest pre-release to the latest stable with no effect.

It looks like this would be circumventable by manually editing the config files but that's a workaround for a workaround for a workaround for me, so not exactly a great solution.

pikaro commented 1 year ago

Oh, I just came across a different way of configuring binding than you describe in the readme: When closing the binding UI as described there, a list of bindings with icons is shown, initially only including the dashboard, home and SteamVR itself. After clicking "Show more" there, OpenVR2Keys is shown twice - once having the configured legacy bindings, one that actually contains a description and looks like it behaves as expected. After editing both, in Documents/steamvr/inputs, there are two files: steam.app.2929291353_knuckles.json which contains the legacy binding, and boll7708.openvr2key_knuckles.json which contains the one that's actually being used.

BOLL7708 commented 1 year ago

Hello there, back from Easter celebrations. I haven't looked into API changes from Valve in a while so things could indeed be out of date, especially with the OpenXR stuff going on. SteamVR does seem to sometime register applications with an automatically generated app ID rather than the provided one, I don't know why, but that can generate a garbage instance of it in the lists which is impossible to tell apart without digging deeper as you did.

Right now, I'm not sure if you got it working or not, but it sounds like you're getting close in any case.