NixOS VR a Mild Adventure
Switching over to Linux as a daily driver isn’t the only new thing for me to start doing in the new year. Something I didn’t mention in the previous post was that I also got myself a VR Headset. Specifically A Meta Quest 3S. Surely not as fancy as a Meta Quest 3 or a Value Index but it is more of a “just works” setup for relatively cheap. And given I was able to pick it up with a carrying case for $250 it seemed like something cheap enough that it wouldn’t hurt too bad if I never really use it. So the journey began.
The General Setup
Now I personally getting into it I didn’t really like the idea of locking my entire VR library to Meta’s systems. So the plan was originally to simply stream Steam VR to the Quest using the Steam Link app on the Quest. And if I wanted to use Windows that would have worked perfectly. In fact when I first bought the headset and Beat Saber that’s how I ended up playing it. But that was certainly not the first thing I tried.
During my first attempt I tried to simply install SteamVR on NixOS. And at least from my research if I was running something line Ubuntu to my understanding it would have simply just worked. In theory at least. But I was not so lucky. Even following the wiki article regarding SteamVR I still had an issue. Because even though I was able to boot into SteamVR and interact with it through the headset. When I go to open Beat Saber I would get an error stating, “OpenXR Runtime was not found. Please ensure you have the correct XR runtime configured, and then restart the game.” And so began the troubleshooting.
Concluding Solution
After a bit of troubleshooting and some mild frustration. I ended up concluding I wouldn’t be able to use SteamVR the way I had originally indented if I was going to use NixOS at the very least. Which was definitely an annoyance.
But I was able to find a solution. I ended up finding a Github Issue describing a very similar issue. Except they where using an application called WiVRn. Which once I got it working allowed me to successfully launch my Steam games using the config I’ll be providing below. The only other extra bit of work I had to do was add PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1 %command% to the launch options of my games individually. There might be a way to do it automatically. But for the moment this just works for me. Especially given my limited library at the moment. So I’m calling that a win.
At the end of the day. I can still launch and “use” SteamVR even if I can’t launch a game in side of it. And WiVRn works well enough. So I’m personally happy with it.
Configs
I’ll be maintaining the below entries as a list of configs and changes I make over time. If I ever find a setting that makes things work better.
Config As Of 2026-02-08
{pkgs,config, lib, ...}:
{
# This option was brought over when attempting to following
# https://lvra.gitlab.io/docs/distros/nixos/. I have found I do not actually
# need it for my setup.
#
# It appears that this SHOULD apply like the the launch options. But I never
# got it to work.
# programs.steam.package = pkgs.steam.override {
# extraProfile = ''
# # Fixes timezones on VRChat
# unset TZ
# # Allows Monado to be used
# export PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1
# '';
# };
services.wivrn = {
enable = true;
openFirewall = true;
# Write information to /etc/xdg/openxr/1/active_runtime.json, VR
# applications will automatically read this and work with WiVRn (Note:
# This does not currently apply for games run in Valve's Proton)
defaultRuntime = true;
# Run WiVRn as a systemd service on startup
autoStart = true;
# Enable the use of wayvr (previously WlxOverlay-S)
config.enable = true;
config.json = {
application = [ pkgs.wayvr ];
};
# Enables WiVRn to automatically search for opencomposite. (This is the default behavior after WiVRn version 0.23.)
# package = (
# pkgs.wivrn.overrideAttrs (old: {
# cmakeFlags = old.cmakeFlags ++ [
# (lib.cmakeFeature "OPENCOMPOSITE_SEARCH_PATH" "${pkgs.opencomposite}/lib/opencomposite")
# ];
# }));
};
}
Randon Links and Notes after the fact.
- NixOS VR Article on LVRA Wiki
- This article provides a couple different methods.
- This site in general has a lot of useful information when it comes to Linux VR.
- Beat Saber does not like the use of overlays like wayvr. Among other issues seen here on the LVRA Wiki.