MCPcopy Create free account
hub / github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings

github.com/OpenVR-Advanced-Settings/OpenVR-AdvancedSettings @v5.8.11

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.8.11 ↗ · + Follow
3,683 symbols 6,577 edges 99 files 540 documented · 15% updated 5d agov5.8.11 · 2024-03-29★ 1,69389 open issues

Browse by type

Functions 2,451 Types & classes 1,232
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

language dependencies license_gpl3

Build status Build Status

Discord Shield

OpenVR Advanced Settings Overlay

Adds an overlay to the OpenVR dashboard that allows access to advanced settings and useful utilities.

Example Screenshot

Features

Do all this without leaving VR:

  • Set supersampling values.
  • Enable/disable motion smoothing and advanced supersample filtering.
  • Save supersampling and reprojection settings into profiles.
  • Change several chaperone settings not accessible via SteamVR settings (to e.g. make it completely invisible).
  • Chaperone Proximity Warning: Several warning methods can be configured.
  • Chaperone Profiles: Allows to quickly switch chaperone geometry and settings while in VR.
  • Temporarily move and rotate the playspace.
  • Floor height fix, for knuckles and wands.
  • Floor Center fix.
  • Display several performance statistics and other statistics (e.g. headset rotations).
  • Control audio devices, volumes and mirror devices.
  • Control microphone as push-to-talk or push-to-mute via VR controller button.
  • Simple Alarm Clock
  • Player height adjust toggle
  • Snap Turn option.
  • Advanced Space Features: gravity, space-turn, and space-drag
  • Control media players (Pause/Play, Next Song, Previous Song, Stop).
  • Send keyboard inputs (like Alt+Tab, Alt+Enter, Backspace, etc.).
  • Bind VR controller buttons to send keyboard inputs (for example to mute VOIP applications while in VR).
  • Center Marker with rotation indicator.
  • All the above also available from a window on the desktop.

Usage

Windows

Steam

Get it on Steam at OVR Advanced Settings

Note: Please Un-install Other Versions Before Installing Via Steam.

Installer

Download the newest installer from the release section and run it.

If you have an older standalone version installed, the installer will automatically uninstall the old version and install the new version.

Standalone

Download the newest standalone archive from the release section and unpack the archive.

To install for the first time simply start AdvancedSettings.exe once while SteamVR is running. It will register with SteamVR and automatically starts whenever SteamVR starts (Can be disabled in the settings).

To upgrade an existing installation first stop SteamVR and delete the old application folder (or override it). Then start SteamVR and run AdvancedSettings.exe once.

Linux

Steam for Linux

Get it on Steam at OVR Advanced Settings

Note: Please Un-install Other Versions Before Installing Via Steam.

AppImage

The AppImage can be found in the release section and should run on most common Linux distributions.

Simply double click the AppImage once downloaded to run it. Depending on your distribution you may need to make it executable with chmod +x OpenVR_Advanced_Settings*.

If the AppImage doesn't work for whatever reason, please create an issue here describing the problem and try compiling from source.

Arch/Manjaro

OpenVR Advanced Settings is on the Arch User Repository as ovras. Manjaro users can enable the AUR and install this package using pamac build ovras.

Building from Source

Detailed instructions are available here.

Guides

Overall Feature Overview Guides

SteamVR Input System (keybinds for app)

Keyboard Binding System

Pairing Cheat Sheet

Bindings

For information on how to properly set-up bindings see: SteamVR Input System Guide

The following actions currently exist:

Music

Actions associated with media player.

Action Type Explanation
Play Next Track Binary/Button The same as using the media keys. Tells a media player to play the next song.
Play Previous Track Binary/Button The same as using the media keys. Tells a media player to play the previous song.
Pause/Play Track Binary/Button The same as using the media keys. Tells the media player to press play/pause.
Stop Track Binary/Button The same as using the media keys. Tells the media player to stop playback.

Motion

Actions associated with motion tab, and motion.

Override actions will take priority over non-override actions during simultaneous activation. Example: binding space turn to single click and space drag (override) to double click on the same physical button.

Action Type Explanation
Left Hand Space Turn Binary/Button Rotates PlaySpace based on left controller rotation while held.
Right Hand Space Turn Binary/Button Rotates PlaySpace based on right controller rotation while held.
Left Hand Space Drag Binary/Button Moves PlaySpace based on left controller position while held.
Right Hand Space Drag Binary/Button Moves PlaySpace based on right controller position while held.
(Optional Override) Left Hand Space Turn Binary/Button Override version: will activate instead of non-override during simultaneous activation.
(Optional Override) Right Hand Space Turn Binary/Button Override version: will activate instead of non-override during simultaneous activation.
(Optional Override) Left Hand Space Drag Binary/Button Override version: will activate instead of non-override during simultaneous activation.
(Optional Override) Right Hand Space Drag Binary/Button Override version: will activate instead of non-override during simultaneous activation.
Swap Active Space Drag to Left Hand (Override) Binary/Button Activates space drag on left controller only if right controller is currently active in space drag. (Useful for climbing motions)
Swap Active Space Drag to Right Hand (Override) Binary/Button Activates space drag on right controller only if left controller is currently active in space drag. (Useful for climbing motions)
Gravity Toggle Binary/Button Toggles Gravity state when pressed.
Gravity Reverse Binary/Button Temporarily Reverses Gravity while held.
Reset Offsets Binary/Button Resets your offset and rotation to 0.
Apply Offsets Binary/Button Recalibrates center/rotation from offsets
Height Toggle Binary/Button Shifts the gravity floor level by offset configured in motion tab. If gravity is inactive: also shifts the user's current y-axis position by offset configured in motion tab.
Snap-Turn Left Binary/Button Rotates a set value to the left based on settings in motion tab.
Snap-Turn Right Binary/Button Rotates a set value to the right based on settings in motion tab.
Smooth-Turn Right Binary/Button Rotates an amount per frame to the right based on settings in motion tab.
Smooth-Turn Left Binary/Button Rotates an amount per frame to the left based on settings in motion tab.
Auto-Turn Toggle Binary/Button Toggles the Auto-Turn Feature on/off.

Misc.

Actions that don't have a clear category.

Action Type Explanation
X-Axis Lock Toggle Binary/Button Toggles the lock of the X-Axis for offsets.
Y-Axis Lock Toggle Binary/Button Toggles the lock of the Y-Axis for offsets.
Z-Axis Lock Toggle Binary/Button Toggles the lock of the Z-Axis for offsets.
Chaperone Toggle Binary/Button Toggles the chaperone on/off.
Keyboard Shortcut One Binary/Button Sends the key sequence defined the the settings file. Defaults to Ctrl+Shift+M (Discord default toggle mute).
Keyboard Shortcut Two Binary/Button Sends the key sequence defined the the settings file. This has no default sequence.
Keyboard Shortcut Three Binary/Button Sends the key sequence defined the the settings file. This has no default sequence.
Key Press Misc Binary/Button Sends the key press defined in the settings file. Defaults to F9

System.

Actions That will stay active regardless of the situation.

Action Type Explanation
Push to Talk Binary/Button Acts as starter for PTT, can mute if push-to-mute is selected.
Add Left Haptic Click Binary/Button simulates a "click" with controller haptics. (left hand)
Add Right Haptic Click Binary/Button simulates a "click" with controller haptics. (right hand)
Key Press System Binary/Button Sends the key press defined in the settings file. Defaults to F9
Exclusive Input Toggle Binary/Button Switches between App and OVRAS keybinds, note: OVRAS's system Key-Binds remain active all the time

Haptics.

These Actions are Hidden, They are bound by default. They allow the application to use the haptics and proximity sensor in HMD's.

Action Type Explanation
Haptics Left Vibration Handle for haptic events on the Left Controller. Do not "bind" this action
Haptics Right Vibration Handle for haptic events on the Right Controller. Do not "bind" this action
Proximity Sensor Binary/Button Connects Automatically to your HMD's proximity sensor. Do not "bind" this action, it will cause un-predictable behavior.

Default Bindings

Vive Wands

  • Menu Button (both hands)
  • Single Click: Space Turn (respective hand)
  • Double Click: Space Drag (override) (respective hand)
  • Single Click: Swap Active Space Drag (override) (respective hand)
  • TrackPad (right hand)
  • D-pad Down click: Push-to-Talk
  • Haptics bound

Valve Index Controllers (Knuckles)

  • B Button (both hands)
  • Single Click: Space Turn (respective hand)
  • Double Click: Space Drag (override) (respective hand)
  • Single Click: Swap Active Space Drag (override) (respective hand)
  • Trigger (left hand)
  • Click: Push-to-Talk
  • Haptics bound

WMR

  • Menu Button (both hands)
  • Single Click: Space Turn (respective hand)
  • Double Click: Space Drag (override) (respective hand)
  • Single Click: Swap Active Space Drag (override) (respective hand)
  • TrackPad (right hand)
  • D-pad Down click: Push-to-Talk
  • Haptics bound

Touch

  • B/Y Button (respective hands)
  • Single Click: Space Turn (respective hand)
  • Double Click: Space Drag (override) (respective hand)
  • Single Click: Swap Active Space Drag (override) (respective hand)
  • Trigger (left hand)
  • Click: Push-to-Talk
  • Haptics bound

Other Controllers

No current default bindings you will have to make your own.

Command Line Arguments

The application

Core symbols most depended-on inside this repo

Shape

Method 2,009
Class 886
Function 442
Enum 346

Languages

C++80%
C#19%
Python1%

Modules by API surface

third-party/openvr/headers/openvr_api.cs691 symbols
third-party/nlhomann/json.hpp547 symbols
third-party/easylogging++/easylogging++.h335 symbols
third-party/openvr/headers/openvr_capi.h315 symbols
third-party/openvr/headers/openvr.h256 symbols
third-party/openvr/headers/openvr_driver.h251 symbols
third-party/easylogging++/easylogging++.cc164 symbols
src/tabcontrollers/MoveCenterTabController.cpp117 symbols
src/tabcontrollers/ChaperoneTabController.cpp83 symbols
src/tabcontrollers/AudioTabController.cpp73 symbols
src/overlaycontroller.cpp62 symbols
src/tabcontrollers/SteamVRTabController.cpp56 symbols

For agents

$ claude mcp add OpenVR-AdvancedSettings \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page