Skip to content

1. DesktopXR Documentation

Glen Harrison edited this page May 30, 2026 · 49 revisions

DesktopXR Documentation

DesktopXR is an OpenXR API layer that provides a configurable desktop overlay in VR.

You can configure DesktopXR by editing a simple .ini file. The DesktopXR Configurator app is also available if you prefer editing settings through a GUI.

This page explains where the configuration file is stored, how to edit it, and what each setting controls.


Quick Start

1. Open the configuration folder

Press:

Win + R

Paste the following path, then press Enter:

%appdata%\DesktopXR

This opens the DesktopXR configuration directory.


2. Edit the configuration file

Open:

desktopxr.ini

Use Notepad or any other text editor.

After saving changes, restart your OpenXR application for the new settings to take effect.

If desktopxr.ini does not exist yet, DesktopXR will create it automatically the first time it launches.


Example Configuration

[DesktopXR]
toggle_key=CTRL+SHIFT+1
binding=world
toggle_binding=CTRL+SHIFT+2
monitor=0
toggle_monitor=CTRL+SHIFT+3
start_visible=0

[Quality Settings]
quality=low
resolution=
transparency=0

[Position Mappings]
size_default=80
distance_default=3
desktopleft=CTRL+SHIFT+A
desktopright=CTRL+SHIFT+D
desktopup=CTRL+SHIFT+W
desktopdown=CTRL+SHIFT+S
desktopbigger=CTRL+SHIFT+F5
desktopsmaller=CTRL+SHIFT+F6
desktopnearer=CTRL+SHIFT+F7
desktopfurther=CTRL+SHIFT+F8
desktoptiltleft=CTRL+SHIFT+F9
desktoptiltright=CTRL+SHIFT+F10
desktoptiltup=CTRL+SHIFT+F11
desktoptiltdown=CTRL+SHIFT+F12
desktoporbitleft=CTRL+SHIFT+6
desktoporbitright=CTRL+SHIFT+7
desktoporbitup=CTRL+SHIFT+8
desktoporbitdown=CTRL+SHIFT+9
desktoppositionhead=
desktoppositionworld=
desktoppositionhud=

[FOV]
fov_enabled=0
fovcullleft=0
fovcullright=0
fovculltop=0
fovcullbottom=0

[FFR]
ffr_enabled=0
ffr_vc_enabled=0
ffrinner=1x1
ffrinnerradius=50
ffrmiddle=1x2
ffrmiddleradius=80
ffrouter=2x2

[VisionCore]
vc_enabled=0
brightness=50
exposure=50
contrast=50
saturation=50
highlights=100
cas=0

[Heads up Display]
hud_enabled=1
toggle_hud=CTRL+SHIFT+4

[Misc]
frame_pacing=0
frametime_log=0
reset_key=CTRL+SHIFT+5

Settings Reference

DesktopXR

toggle_key

Shows or hides the desktop overlay.

Default:

toggle_key=CTRL+SHIFT+1

Example:

toggle_key=CTRL+SHIFT+F1

binding

Sets the desktop overlay binding mode used at startup.

Valid values:

Value Description
world The desktop stays fixed in VR space.
head The desktop follows the headset.

Default:

binding=world

Example:

binding=head

toggle_binding

Switches between world and head binding while DesktopXR is running.

Default:

toggle_binding=CTRL+SHIFT+2

Example:

toggle_binding=CTRL+SHIFT+F2

monitor

Selects which Windows monitor DesktopXR captures.

Monitor values use zero-based indexing.

Value Monitor
0 Primary monitor
1 Second monitor
2 Third monitor

Default:

monitor=0

Example:

monitor=1

toggle_monitor

Switches to a different monitor while DesktopXR is running.

Default:

toggle_monitor=CTRL+SHIFT+3

Example:

toggle_monitor=CTRL+SHIFT+F3

start_visible

Controls whether the desktop overlay is visible when the OpenXR session begins.

Valid values:

Value Description
0 Start hidden
1 Start visible

Default:

start_visible=0

Example:

start_visible=1

Quality Settings

quality

Sets a preset render resolution for the DesktopXR overlay.

Your Windows desktop is automatically scaled to match the selected preset.

Valid values:

Value Resolution Notes
low 1920x1080 Recommended default
medium 2560x1440 Higher clarity
high 3840x2160 Highest clarity, higher GPU cost

Default:

quality=low

Example:

quality=high

If resolution is set, it overrides quality.


resolution

Manually overrides the overlay render resolution.

When this value is set, DesktopXR renders at the exact resolution specified and ignores the quality preset.

This is useful for ultrawide displays, super-ultrawide displays, or custom aspect ratios.

Format:

resolution=WIDTHxHEIGHT

Examples:

resolution=3440x1440
resolution=5120x1440
resolution=2560x1080

Leave this value blank to use the selected quality preset:

resolution=

transparency

Sets the transparency of the desktop overlay as a percentage.

Default:

transparency=0

Example:

transparency=50

Position Mappings

size_default

Sets the default overlay size as a percentage.

Default:

size_default=80

Example:

size_default=100

distance_default

Sets the default distance of the overlay from the user.

Units are meters.

Default:

distance_default=3

Example:

distance_default=4

Desktop movement keys

These keys move, resize, or tilt the desktop overlay while DesktopXR is running.

Defaults:

desktopleft=CTRL+SHIFT+A
desktopright=CTRL+SHIFT+D
desktopup=CTRL+SHIFT+W
desktopdown=CTRL+SHIFT+S
desktopbigger=CTRL+SHIFT+F5
desktopsmaller=CTRL+SHIFT+F6
desktopnearer=CTRL+SHIFT+F7
desktopfurther=CTRL+SHIFT+F8
desktoptiltleft=CTRL+SHIFT+F9
desktoptiltright=CTRL+SHIFT+F10
desktoptiltup=CTRL+SHIFT+F11
desktoptiltdown=CTRL+SHIFT+F12

Desktop orbit keys

These keys orbit the desktop overlay while DesktopXR is running.

Defaults:

desktoporbitleft=CTRL+SHIFT+6
desktoporbitright=CTRL+SHIFT+7
desktoporbitup=CTRL+SHIFT+8
desktoporbitdown=CTRL+SHIFT+9

Saved desktop positions

These settings store saved desktop and HUD positions.

They are blank by default and are populated by DesktopXR when a position is saved.

desktoppositionhead=
desktoppositionworld=
desktoppositionhud=

Example after saving a position:

desktoppositionhead=(saved position data)
desktoppositionworld=(saved position data)
desktoppositionhud=(saved position data)

FOV

fov_enabled

Enables or disables FOV culling.

Valid values:

Value Description
0 Disabled
1 Enabled

Default:

fov_enabled=0

fovcullleft, fovcullright, fovculltop, fovcullbottom

Controls how much of the rendered field of view is culled from each side.

Default:

fovcullleft=0
fovcullright=0
fovculltop=0
fovcullbottom=0

Example:

fovcullleft=5
fovcullright=5
fovculltop=28
fovcullbottom=28

FFR

ffr_enabled

Enables or disables Foveated Rendering.

Valid values:

Value Description
0 Disabled
1 Enabled

Default:

ffr_enabled=0

ffr_vc_enabled

Enables or disables customized VisionCore for Fixed Foveated Rendering.

Valid values:

Value Description
0 Applies VisionCore to entire display when VisionCore is enabled
1 Applies VisionCore to FFR inner center only when VisionCore is enabled
2 Applies VisionCore to outer FFR area only when VisionCore is enabled

Default:

ffr_vc_enabled=0

ffrinner, ffrinnerradius, ffrmiddle, ffrmiddleradius, ffrouter

Configures the Fixed Foveated Rendering regions and shading rates.

Defaults:

ffrinner=1x1
ffrinnerradius=50
ffrmiddle=1x2
ffrmiddleradius=80
ffrouter=2x2

Example:

ffrinner=1x1
ffrinnerradius=20
ffrmiddle=2x2
ffrmiddleradius=80
ffrouter=2x4

VisionCore

vc_enabled

Enables or disables VisionCore image adjustment.

Valid values:

Value Description
0 Disabled
1 Enabled

Default:

vc_enabled=0

Image adjustment settings

These settings adjust the final image output.

Defaults:

brightness=50
exposure=50
contrast=50
saturation=50
highlights=100
cas=0

Example:

brightness=50
exposure=50
contrast=55
saturation=45
highlights=80
cas=50

Heads up Display

hud_enabled

Enables or disables the heads up display.

Valid values:

Value Description
0 Disabled
1 Enabled

Default:

hud_enabled=1

Example:

hud_enabled=0

toggle_hud

Shows or hides the heads up display while DesktopXR is running.

Default:

toggle_hud=CTRL+SHIFT+4

Example:

toggle_hud=CTRL+SHIFT+F4

Misc


frame_pacing

Frame pacing can improve FPS by allowing the game to prepare frames more aggressively instead of waiting as much on the normal VR frame timing loop. This can reduce idle time and improve performance in some games.

Because this changes how frames are scheduled, it may cause instability, visual judder, or sync issues with external motion systems such as motion rigs. If you notice unusual stutter, swimming, instability, or motion rig timing problems, set frame_pacing=0.

Valid values:

Value Description
0 Off / normal behaviour
1 Low-risk mode, smaller performance gain
2 Turbo mode, higher performance gain, higher compatibility risk

Default:

frame_pacing=0

frametime_log

Enables or disables GPU frametime logging.

Valid values:

Value Description
0 Logging disabled
1 Logging enabled

Default:

frametime_log=0

Example:

frametime_log=1

Logs are written to:

%temp%\DesktopXR

reset_key

Resets the desktop and HUD positions back to their defaults.

Default:

reset_key=CTRL+SHIFT+5

Example:

reset_key=CTRL+SHIFT+F5

Supported Keys

DesktopXR supports standard keyboard keys.

Supported modifiers:

SHIFT
CTRL
ALT

Supported keys:

F1-F12
A-Z
0-9
Escape
Insert
Delete
Home
End
PageUp
PageDown

Avoid keys already used by your VR software, OpenXR runtime, simulator, or game.


Troubleshooting

If a setting does not appear to work:

  1. Confirm the file is named exactly:

    desktopxr.ini
    
  2. Confirm the file is located in:

    %appdata%\DesktopXR
    
  3. Save the file after editing.

  4. Restart your OpenXR application.

  5. Reboot your PC if the setting still does not apply.

Logs can be found in:

%temp%\DesktopXR

If the problem continues, report an issue on GitHub.


Reset to Defaults

To reset DesktopXR to its default configuration, delete:

%appdata%\DesktopXR\desktopxr.ini

DesktopXR will recreate the file with default settings the next time it launches.

Clone this wiki locally