Having issues or have suggestions? Join us on Discord or post on the Steam Discussions!
Added: - Added support for 'Global Overlays'. - Added 'Persist between profiles' option to Window Settings. - Integrated SteamVR-ForceCompositorScale. - Added 'Low overlay quality' banner with an option to launch ForceCompositorScale to fix it. (Please provide feedback on your experience with this!) - Added OSC support for ChilloutVR.
Changes: - Slightly increased size and hitboxes of media controls. - Removed 'Automatic performance adjustments' option. (It hasn't done anything noticeable for a long time) - Quick profile selector on the wristwatch now supports more than 5 profiles. (Scrollable)
Bug fixes: - Snapped windows on the desktop should no longer become un-snapped unless something is set as 'Always on top' or the window was minimized. - 'Low video memory' warning will no longer appear on GPUs which don't report VRAM usage. (AMD GPUs) - 'Add Module' button should no long appear after app restart when app 3 modules are already active. - fpsVR overlay position will now change position based on the size of the wristwatch. (Fixed overlay clipping with the wristwatch)
Web API: - Web API spawned browser overlays with 'ShouldSave' set to true will now persist across all profiles. (To better support legacy Custom Apps)
Please note, this is only an initial version of the new wristwatch to gather feedback!
The new wristwatch will look cleaner in the future as right now many legacy elements have been slapped on it due to other systems not being overhauled yet.
Added: - New Wristwatch design! Please provide feedback in Discord! :) - Added 'Keyboard Opacity' setting to Global Settings > Keyboard. - Added keyboard 'Only show when in view' setting to Global Settings > Keyboard. - Added 1 hour and 30 minute notifications for an upcoming event you're interested in to remind users of an upcoming event. - Wristwatch will now remind you of an upcoming event with an 'Upcoming Events - 60m' banner across the top for an event you are interested in starting at 2 hours before event start.
Changes: - Eco Mode is now SMARTER! If the SteamVR Compositor is able to keep up with your headset refresh rate, Eco Mode will limit to half your set FPS (60 > 30) instead of 2 FPS as it did before. (Will use 2 FPS is compositor is lagging) - Renamed 'Hide window when not visible' setting to 'Only show when in view'. - Clarified some sections of the tutorial to avoid confusion. (Hopefully fixed the 'Which gear icon do I click?' questions!) - Updated tutorial images to reflect new wrist UI design. - 'Upcoming events' notification will now ignore full events and ones you are already interested in. (To avoid a pointless notification) - When keyboard generator fails to load initial keyboard and fallback keyboard, a built-in keyboard asset file will be used instead. - Removed 'Disable keyboard sound' setting as this feature has long since been replaced by the Volumes menu with individual volume sliders.
Bug fixes: - Fixed Backspace volume setting not working as intended. - Fixed an issue that could cause a keyboard key to be stuck highlighted. - Made further attempts to fix the 'Stuck shift' issue. (I still can't reproduce it reliably to know what the cause is, please help if you can!) - Fixed turning off a controller setting a tracker to 'D/C'. (This was due to the controller no longer being the 'left' or 'right' hand as it's now disconnected, causing it to be labelled as a 'tracker' as a fallback) - When a controller is disconnected and a different one is connected, the old left/right controller will be re-labelled as a tracker to make way for the new controller in the battery monitoring. - Attempted to resolve 'phantom tracker' issue. (Battery monitoring will be flushed whenever a new device is connected, even if this is an existing device being turned off and back on) - Fixed Windows.Graphics.Capture ('Force GPU Capture') being limited to 30 FPS. (Only 'PrintWindow', Force GPU Capture off, should be limited to 30 FPS due to its very high CPU load)
Added: - OVR Toolkit Events (Limited to VRChat initially but will be expanded to other titles)
Bug fixes: - Fixed 'Reset to default keyboard' button not working as intended.
What is OVR Toolkit Events?
Events will allow you to host a... Well... Event, right?
Your events will appear in a listing where other users can find them and show that they are interested. You provide some join instructions, such as a VRChat username to add or a join link, then when the event starts interested users will be notified in VR and be provided with your join instructions so they can come hangout with you.
But why add this? Isn't OVR Toolkit just a desktop viewer!?
Yes! Wait... No!
OVR Toolkit is of course, primarily, a desktop viewer, but at the end of the day... It's not OVR Desktop Viewer, it's OVR Toolkit! My hope is that with OVR Toolkit's large userbase we can help connect like-minded people in different games.
Did you know you can get a tour of an observatory in VRChat by someone who works at the real place? Or a tour of a Mars rover by someone who worked on it? Do group workouts? Learn sign language? Maybe you did, or very likely, you didn't. It's very hard to find other people who may have similar interests to you. This is even worse in other games outside of VRChat where you need to add people on Steam to play with them or hope that one of 5 public lobbies have anyone in them you want to play with.
TL;DR - Hopefully, Events can help people find other people to hang out with, and as a result, boost discoverability and event planning across all VR games.
(Note that Events will be coming to a standalone free app as well in the future if it performs well in OVR Toolkit, this will allow none OVR Toolkit users to access those events as well)
But Curtis! I like not hanging out with anyone, I don't want OVR Toolkit to lag from Events stuff that I'll never use!
Don't worry, Events has next to no impact on performance, if you think otherwise, please don't hesitate to message me in our Discord server and I'll look into it! But rest assured, it shouldn't be a problem. If it's not for you, don't use it, and it won't affect you. :)
Provide feedback in our Discord server! Thanks! <3
Added: - Added 'MediaPlaying' VRChat OSC parameter. (See the OVR Toolkit wiki)
Changes: - Modified some launcher messages. ('Waiting for headset to be tracking' > 'Waiting for SteamVR to provide headset position') - Added error catching for if System.IO calls fail due to wacky file/folder permissions. - Greatly improved window reloading reliability. (Less 'Window not found' issues when restarting the application) - Re-wrote keyboard input handling logic from scratch to try to resolve the stuck keys issue. (Spoiler: It may still happen, the issue cause is still unknown as it can't be reproduced!)
Bug fixes: - Fixed keyboard layout generator issue which resulted in Ctrl+Key and Ctrl+Shift+Key symbols not appearing on the keyboard. - Fixed an issue which would cause some DirectInput devices to not be detected. (Fixed controller bindings not working when bound to a HOTAS/Wheel) - Fixed macros not saving when the same icon is used in multiple macros. - Fixed missing translations in macros page. - Fixed a macro load order issue when more than 10 macros are added. - Fixed an issue that would prevent some controllers from working with OVR Toolkit's controller bindings. (Due to the device being acquired by the launcher window but as it's not released the main application couldn't acquire the device)
Bug fixes: - Greatly improved window reloading reliability. (Less 'Window not found' issues when restarting the application) - Fixed a macro load order issue when more than 10 macros are added.
Bug fixes: - Fixed keyboard layout generator issue which resulted in Ctrl+Key and Ctrl+Shift+Key symbols not appearing on the keyboard. - Added error catching for if System.IO calls fail due to wacky file/folder permissions. - Fixed an issue which would cause some DirectInput devices to not be detected. (Fixed controller bindings not working when bound to a HOTAS/Wheel) - Fixed macros not saving when the same icon is used in multiple macros. - Fixed missing translations in macros page.
(I've finished moving house now! It's still a bit chaotic though so may not be any bigger changes for a week or two!)
Changes: - Battery remaining time should now be more accurate. (Added checking for seemingly incorrect values that OVR Toolkit has gathered. These changes will become noticeable after a full charge cycle has taken place)
Bug fixes: - Fixed a memory leak caused by opening the Workshop viewer. (To select custom backgrounds, keyboards, etc.) - Fixed a crash when toggling on windows. (Due to a Windows service crashing and OVRT not handling this properly) - Fixed a saving issue where overlay size could become 'NaN', resulting in errors when reloading. Default size will now be used if overlay size can't be retrieved. - Fixed a 'Window not found' issue with fallback desktop captures after switching profile or on app startup. - Fixed 'Window not found' overlay appearing at incorrect resolution in some instances. - When a fallback desktop capture isn't found, it will now show 'Desktop name' instead of 'Window name' on the 'Window not found' display.
(Fallback desktop capture is used when trying to capture a monitor that isn't on the same GPU as the VR headset)
I remember saying something about "I won't be doing any changes for a while as I'm moving house!", but alas, here we are. I do get the keys in 3 days though! :)
Bug fixes: - Potential fix for a GPU driver related crash when under heavy GPU load. - Fixed 'Minimize on Startup' setting not toggling. - Fixed overlapping text in the uninstall screen. - Fixed 'Window not found' window appearing at inconsistent sizes. - Potential fix for a desktop capture saving/loading issue when capturing a monitor from a different GPU.
(Last update for a little while as I'm moving house next week!)
Added: - Added 'You are below OVR Toolkit's minimum requirements' warning for users with a GPU that has less than 6GB of VRAM. (OVR Toolkit uses only 400MB, but 6GB is required for SteamVR + OVRT + VRChat realistically - This is the more real world value to advertise!)
Changes: - Improved battery health monitoring. (This should help provide more accurate time remaining values) - Improved saving of desktop captures of monitors that are on another GPU.
Bug fixes: - Added catching for an OSC error when 127.0.0.1 is an invalid address. (??) - Fixed launcher window sometimes not minimizing to tray automatically 5 seconds after startup completes. - Fixed launcher window minimizing if you are in the Settings or How To menus. - Fixed tray icon remaining visible after application close.
Added: - Added Macros configuration page to the Settings tab outside of VR. - Added 'Macros' to the 'Add Wrist Module' menu. - Added button to toggle media sessions. (To the right of the current media player icon - This will cycle between which media player is being controlled
Changes: - Made large changes to window finding logic to 'hopefully' better find the correct windows when changing profile/starting a new session. - Keyboard loader will now attempt up to 10 connections to the background process before giving up instead of 1. - Tundra Trackers have been excluded from battery time remaining calculations due to firmware issues, once Tundra Labs has fixed these issues I'll re-enable this! - 'Futhark' keyboard layout now reverts to EN-US due to Unity not supporting characters ('Runes'?) from this layout.
Bug fixes: - Simulator Mode's Window List should now update when a window title changes without having to re-open the menu. - Fixed Window List not updating if a window was closed via its quick controls. - Fixed an issue that caused the first down arrow press in the Simulator Mode window list to not move down in the menu. - Fixed clicking the voice input bar outputting a system message if nothing has been transcribed yet. - Keyboard loader process will now be killed if the connection to it failed after 10 attempts to avoid a 'Stuck running on Steam' issue on shutdown. - Fixed VRChat open detection (For OSC) failing if a setting was disabled.
Custom Apps / Web API: - Fixed 'sendOSCMessage' call sending all values as an int. - 'sendOSCMessage' call can now take values of type bool and number instead of string. - Overlays with 'MovementBlocked' via the web API can no longer be resized. - Fixed Web API call for 'setAttachDevice' with value 0 not detaching a window from a device.
Fixed keyboard generator errors in the following keyboards: - Vietnamese - Greek Latin - Futhark