System Menu Button Press not working anymore in latest SteamVr update
I am working on some software for a VR Arcade. We have the dashboard disabled in steam vr settings and would bring up our own overlay when the system menu button was pressed.
We also use "sendSystemButtonToAllApps" : true in steamvr.vrsettings to make this work.
All was working fine until the latest SteamVR update. Now when the user presses the system button the EVRButtonId.k_EButton_System event is only sometimes detected. Very sporadically, or on a double click.
I also found when the user puts on the headset pEvent.data.controller.button == 31 gets fired. And while the user has the headset on and presses the system button pEvent.data.controller.button == 31 gets fired as well, instead of pEvent.data.controller.button == (int)VRButtonId.k_EButton_System.
Is there a way you guys can fix this, or is there something I am missing?
I'm not sure this is the fix for your problem, but it seems likely.
The system button is not bound by default for legacy applications. (Anything that's expecting button events or calling GetControllerState is a legacy application.) You should be able to change this for each application you care about by editing the bindings. Just click on Settings then Controller Bindings then the app in question in the dashboard. If you bind the system button to left system press/right system press you should start getting those events again.
You can also open the binding UI on the desktop from the settings menu. Just turn on input debugging in the developer options. You'll need to do this after setting "sendSystemButtonToAllApps" to true.
The system button is not bound by default for legacy applications. (Anything that's expecting button events or calling GetControllerState is a legacy application.) You should be able to change this for each application you care about by editing the bindings. Just click on Settings then Controller Bindings then the app in question in the dashboard. If you bind the system button to left system press/right system press you should start getting those events again.
I made sure the binding were set correctly, and it is still acting the same way. I also made sure I was using the latest DLL.
Also note, the input debugger shows the system button being pressed correctly, but the openVR_api doesn't seem to register the system buttons correctly. Still when I have the headset on it registers the system button press as 31 and not 0.
I appreciate the help! Hopefully you can help me solve this.
@josephsipos were you able to figure this thing out?
@josephsipos @theLadi The dashboard may interrupt system button calls if you have the system actions bound to the system button. I would recommend unbinding these actions if you're not using that functionality.
Open Controller Settings Manage Bindings for: VR Dashboard Custom Binding Edit Binding Edit the button mode on the system button Click the System Action Mode button and change it to None Click Save Personal Binding
You'll need to do this for each type of controller you're using.




@keithbradner Dude! Awesome, your guide fixed the issue. Before these changes I was getting 50% of the button presses but after the changes all of the presses are registered in Unity. Also the presses are not red anymore in the Unitys SteamVR Input Live View. I could not find the "SteamVR Dashboard"-application in my bindings list but I found the "VR Compositor"-application which had the same binding as in your screenshots.