yum-food / TaSTT

A free self-hosted STT for VRChat
MIT License
71 stars 4 forks source link

Index Trackpad Click counts as thumbstick click #2

Open ShyAssassin opened 1 year ago

ShyAssassin commented 1 year ago

When using Valve Index Controllers clicking down at the top of the trackpad will start transcription when the start action is set as the thumbtack click in settings. After snooping around the source code i believe this is because unfortunately like thumbstick actions trackpad actions also fire the same event, unlike with thumbsticks the currently implemented deadzone check will not reliably filter out inputs for trackpads. Before opening this issue i did try a few things to attempt to fix it so i could open a PR but nothing i could think of worked, it may be worth removing openvr in favor of openxr(pyopenxr) as it has separate events for these actions.

yum-food commented 1 year ago

Agreed w/ openxr. openvr is deprecated and the input event filtering is super hacky. Switching libraries is def the move.

FWIW, I personally use the a/b button inputs. This might be a painful but acceptable short-term workaround.

Thanks for the report! I'll try to get to this asap.

ShyAssassin commented 1 year ago

i did try switching over to using a/b for a while but for some reason griping and pulling my hand back activated it at times, although i think that might be an issue with my SteamVR config

yum-food commented 1 year ago

Spent ~3 hours on this so far. Hitting pause for now.

https://github.com/yum-food/TaSTT/commit/e689105f8ad480eaf82eaed12e82a139df0b772b

Notes to self:

ShyAssassin commented 1 year ago

In theory an instance created with the XR_MND_headless extension enabled shouldnt need to have a graphics binding.

yum-food commented 1 year ago

I have a functional prototype done. Working out the bugs and play-testing today. Unless something surprising comes up, it will be in the next release.

yum-food commented 1 year ago

Well, something surprising came up. It seems that two things hold:

https://steamcommunity.com/app/250820/discussions/8/3783625016029084617/

So, I think openXR is out of the question.

yum-food commented 1 year ago

The corollary here is that you can't run an openxr app alongside any other app. The openxr app will kill anything running before it, and anything launched after it will kill the openxr app.

After going over the docs for a couple hours and implementing this a couple different ways, there is simply no way to do it.

So I'll focus on openvr and see if there's a better way to sample joystick clicks.

ShyAssassin commented 1 year ago

hmmmm interesting i wonder how other overlay apps like OpenVR Advanced Settings or XSOverlay are able to run alongside other applications. Im going to do some research and see if i can make something, if i am able to i will share the code here.