Virtual reality

This article or section needs expansion.
Reason:
Rewrite in progress: many things in this article are outdated (Discuss in
Talk:Virtual reality
)
Virtual reality
is the process of simulating an environment for a user, using a variety of peripherals, head mounted displays or
CAVEs
, and trackers. Instead of showing you a static viewpoint from a screen, it renders your viewpoint relative to where you are standing, on a head-attached or projected surface, to give an effect identical to your own eyes.
A number of peripherals have been released or are about to be released recently which have brought affordable, extremely immersive virtual reality to everyone. Most of these peripherals have full or partial Linux support, and many have
AUR
packages.
Hardware compatibility
The following is a non-exhaustive list of currently supported VR/XR devices, and what software supports them.
PCVR HMDs
Device
SteamVR
Monado
Valve Index
Yes
Yes
HTC Vive/Vive Pro
Yes
Yes
HTC Vive Pro Eye
Yes (eye tracking WIP)
Yes (eye tracking WIP)
HTC Vive Pro 2
Yes (
custom driver and patches
needed)
Yes (AMD GPUs only, 2 kernel patches required:
1
2
)
Bigscreen Beyond
Yes (AMD GPUs only,
kernel patch
required)
Yes (AMD GPUs only,
kernel patch
required)
Pimax HMDs
No (planned)
WIP (might work with
kernel patch
)
WMR
Yes (common HMDs, Monado SteamVR plugin)
Yes (6DoF controllers experimental)
Oculus Rift CV1
Yes (OpenHMD recommended)
Yes (OpenHMD recommended)
Oculus Rift S
Yes (Monado SteamVR plugin)
Yes (6DoF controllers experimental)
In addition, there's an experimental PC-PC stream client for WiVRn that might work with the above HMDs that are supported by Monado.
Standalone HMDs
Entries marked with "Yes" but without store links can be sideloaded from their corresponding project websites.
Device
WiVRn
SteamVR through ALVR
SteamVR through Steam Link
Meta Quest 2/3/3S/Pro
Yes (
Meta Quest Store
)
Yes (
Meta Quest Store
)
Yes (
Meta Quest Store
)
Meta Quest 1
Yes
Yes (
Sidequest
)
No
Pico 4/4 Ultra
Yes
Yes
Yes (
Pico Store
)
Pico Neo 3
Yes
Yes
Yes (
Pico Store
)
HTC Vive Focus 3
Yes
Yes
Yes (
Viveport
)
HTC Vive XR Elite
Yes
Yes
Yes (
Viveport
)
Lynx R1
Yes
Yes
No
Apple Vision Pro
No
Yes (
Apple App Store
)
No
Samsung Galaxy XR
Yes
No (
partially working
)
No
Tracking devices
Device
SteamVR
Monado
WiVRn
Vive/Tundra trackers
Yes (native or spacecal)
Yes (native or motoc)
Yes (motoc)
SlimeVR trackers
Yes
Yes
Yes
Project Babble
Yes (oscavmgr)
Yes (oscavmgr)
Yes (oscavmgr)
Eyetrack VR
Yes (oscavmgr)
Yes (oscavmgr)
Yes (oscavmgr)
Mercury hand tracking
No
Yes (survive driver only)
No
Lucid VR gloves
?
Yes (survive driver only)
No
Kinect based FBT
Yes
Yes (experimental)
WIP
Standable FBT
No
No
No
Supported runtimes and toolkits
OpenXR
OpenXR
is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is maintained by the Khronos Group and adopted by most of the industry. Most runtimes support OpenXR.
Monado
Monado
is an open source OpenXR runtime developed by Collabora. It is under heavy development and aims to provide a common runtime supporting most headsets. Current progress can be found here:
https://monado.freedesktop.org/
Install using
monado
AUR
.
Envision
Envision
is a graphical app that acts as an orchestrator to get a full
Monado
setup up and running with a few clicks. Envision attempts to construct a working runtime with both a native OpenXR and an OpenVR API, provided by
XRizer
or
OpenComposite
, for client applications to utilize.
WiVRn
WiVRn
is a runtime based on Monado, capable of streaming to standalone headsets. It currently supports most available Android based HMDs, and also has experimental support for PC to PC streaming.
Upstream recommends to install
wivrn-server
AUR
,
xrizer
AUR
or
xrizer-git
AUR
(for compatibility with Steam games and OpenVR applications), and optionally
wivrn-dashboard
AUR
for the dashboard. It is also available
via Flatpak
. You can install the Android client from your devices' store, download the prebuilt Android client from the
GitHub releases
to sideload, or compile it yourself according to the
build documentation
.
OpenVR / SteamVR
OpenVR is an effort by Valve to create an open API for VR development. Unfortunately, while the API is open, the actual default implementation (SteamVR) is not. SteamVR also provides an OpenXR runtime.
Setting up SteamVR
Install
Vulkan
and
Steam
. If using
NVIDIA
drivers, you may need to set the
VK_DRIVER_FILES
environment variable. Required dependencies for 32-bit packages are:
lib32-gtk2
AUR
,
lib32-libva
,
lib32-libvdpau
.
From Steam, install SteamVR from the tools menu.
ALVR
ALVR is a SteamVR driver which allows streaming to standalone headsets like the Meta/Oculus Quest. It is available in the
alvr
AUR
package.
Steam Link
Valve's closed-source Steam Link App allows streaming games from a PC running SteamVR to supported headsets without relying on third-party software. It supports both a VR mode for proper VR games and a flat-screen mode for desktop games. If the App finds your PC but fails to connect to SteamVR, you may have to open some ports in your firewall as described
here
.
OpenHMD
OpenHMD
is currently not maintained, and should be treated as deprecated for all but older HMD's. It aimed to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking. The aim was to implement support for as many devices as possible in a portable, cross-platform package.
OpenHMD only supports older devices such as Oculus Rift, HTC Vive, Sony PSVR, Deepoon E2 and others, so it is not needed for newer devices, and should not be considered. Most of the HMD driver efforts are now going towards Monado. There's a
fork
focusing on Oculus Rift CV1 tracking, and it's still recommended for that specific headset; use Monado otherwise.
SteamVR support
It is possible to use OpenHMD with SteamVR. To do that, you need to install
steamvr-openhmd-git
AUR
and create a symlink that points to the OpenHMD SteamVR driver inside your SteamVR drivers directory, for example:
$ ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd
Other software
vr-video-player
A simple tool to view any
X11
window inside your VR headset. vr-video-player supports stereoscopic/180°/360° videos/games. vr-video-player also lets you view regular videos/games/windows inside VR as a flat screen.
Available as
vr-video-player
AUR
.
xr-video-player
A fork of vr-video-player for OpenXR and wayland that uses pipewire to capture a window or screen/s.
Available as
xr-video-player-git
AUR
.
SideQuest
SideQuest can be used to install
APK files
to your Oculus Quest. It is available as
sidequest-bin
AUR
.
See
https://sidequestvr.com/setup-howto
for installation steps:
Create an Oculus developer account.
Turn on Quest in developer mode (e.g., with your phone) and connect your Quest via cable.
Press
Allow USB debugging
inside Quest.
See the
SideQuest website
for more information.
WayVR
WayVR
is a lightweight OpenXR/OpenVR overlay that can mirror and control X11/Wayland desktops. It can also act as a Wayland compositor.
Available as
wayvr
AUR
and
wayvr-git
AUR
.
Stardust XR
Stardust XR
(
GitHub
) is a modular XR display server. It can act as an overlay (and can run side by side with wlx-overlay-s) or as a standalone application. It can provide a Wayland compositor using
stardust-xr-flatland
AUR
, an application launcher with
stardust-xr-protostar
AUR
, skyboxes/home environments with
stardust-xr-atmosphere
AUR
and several other features using
other packages
. Install the server with
stardust-xr-server
AUR
; you can also install
stardust-xr-telescope
AUR
for a premade startup script.
Troubleshooting
SteamVR support
Configuration or startup errors
SteamVR/OpenVR creates a directory
~/.openvr
that can get misconfigured over the various versions. Delete that directory and completely uninstall/reinstall SteamVR.
It can also apparently have trouble accessing different HMD's under some configurations. Please refer to the HMD compatibilty chart to see if your headset is compatible.
Games/Programs
Most XR applications run without major issues through
Proton
or Proton GE.
Proton-GE-RTSP
, which provides targeted fixes for VRChat and other social VR platforms, can be installed using
protonup-qt
AUR
or
protonup-rs
AUR
. If a game has issues running through Proton, please refer to the game's Linux/Wine compatibility information,
ProtonDB
and documentation for the XR runtimes and compatibility layers in use for possible fixes.
Other Issues
Because of the nature of VR on Linux it is very common for a wide variety of issues to pop up, and because of the sheer amount of possible issues, it is not possible to write out everything here. Instead, please refer to either the software's respective documentation, the
Linux VR Adventures Wiki
, or the
Linux VR Adventures Discord
for help on any possible issue you are facing.