I know I’m a little late to the party. VR had its golden age of development and excitement in the late 2010s with HTC and Oculus and Valve as well as all the big tech players doing a lot of VR research and development. I didn’t have a computer or income at that time, though. I ended up getting a Meta Quest 2 (then still branded as Oculus) in March of 2022 and played some standalone VR. I played a few games with some other friends with VR, but ultimately I found that, long-term, I really enjoyed Beat Saber. I occasionally tried to play PCVR games that run on my computer rather than the headset itself, but the setup was complicated, the quality was variable, and I didn’t really have many games to play from my computer anyway.
Last month, one of my friends invited me to play VRChat. I think I had tried to play VRChat before but was unable to set up an account on the Quest. But it had been a while and I thought it would be fun, so I sat down the day before to get everything set up on my computer.
Since the Quest 2 is a standalone headset, it has its own built-in computer that uses mobile phone hardware and runs a modified version of Android. Using it with a computer is not really the intended use, but it is possible through Meta’s official Meta Horizon Link app for Windows. It works wirelessly and you can use it with SteamVR to play VR games through Steam.
Unfortunately, I’m not using Windows. I’m currently using KDE Linux, which, like all Linux-based operating systems, is not supported by Meta. I need a third-party solution.
I did a bit of searching for how I can get my headset connected on Linux, and found a project on GitHub called ALVR. It’s pretty popular, works for both Windows and Linux, and it’s even written in Rust. I wouldn’t say it is targeted at Linux (most of the documentation assumes Windows), but any support is better than none. I grabbed the latest release, installed the client app on my Quest 2, and was able to get up and running pretty fast.
That’s not to say it was very simple. To get into a game, you first have to launch the ALVR launcher, open the server application, then click the “Start SteamVR” button, wait for Steam to launch and open SteamVR, then put on the headset and open the ALVR app. From there, it should automatically connect and the SteamVR interface will appear where you can start a game. It’s not the most complicated thing in the world, but this is the process every time you want to start a session.
The setup was more complex. On the Linux version, SteamVR requires specific launch arguments that vary depending on where Steam is installed. With an NVIDIA card, even more launch arguments have to be added to SteamVR, as well as to all the games I want to play too.
But in the end, I did get everything in working order and I was all set to play VRChat with my friends. It was great! I even had no issues with my PC using Wi-Fi rather than a wired network connection.
It was all great until I decided to try some other stuff. I was looking into this other thing called WiVRn, which seemed to be a Linux-only alternative to ALVR, but without SteamVR. I decided to give it a try, and it was super simple to set up, but when I got in-game, my connection was horribly spotty and I thought WiVRn was to blame. So I uninstalled it and set ALVR back up.
Unfortunately, ALVR did not work anymore. I started getting crashes from SteamVR immediately after it started, with cryptic error messages in the logs. I did some troubleshooting but ended up entirely re-installing both Steam and ALVR, purging their data and config. And that still didn’t work. I think I managed to get SteamVR to not crash immediately, but whenever I put on the headset and got connected, one of SteamVR’s components would crash and then the whole thing would just shut down after a few seconds. It was incredibly frustrating because for those few seconds, I could flawlessly navigate the Steam interface. If it just didn’t shut itself down, it would probably be fine.
I never did figure out what was wrong with SteamVR because while troubleshooting, I found a resource callled the Linux VR Adventures Wiki, which explicitly states that SteamVR is officially listed as a “development release” and is not intended for end users, which leads me to believe that ALVR was not the problem, but that SteamVR was upset for some reason.
The wiki also suggested I use WiVRn to connect my headset and that it should be vastly more reliable than SteamVR. Despite my prior issues, I tried WiVRn again. It was flawless. I think I must have just gotten unlucky with my connection when I first tried WiVRn, and I rejected it a little too quickly.
I really like WiVRn now! It doesn’t need to launch SteamVR and I can use it without Steam running at all. Plus the setup and use is super easy, which is very welcoming for new users. I installed a program called WayVR which lets me control my desktop using my VR headset and controllers, which is super convenient! SteamVR has this too, but it never worked on my setup.
The only other issue I had was with VRChat specifically, and that was that the in-game video players didn’t work.
If you’re not familiar, VRChat is a social virtual worlds game, where users create worlds that multiple players can play in. One of the things that can be put in a world is a video player. They can play videos from online sources like YouTube. There are lots of implementations, but they all use the same framework at their core: Windows Media Foundation. Some of my friends (also using Linux) had video players working out of the box, but I had to install a custom version of the Proton compatibility layer called Proton-GE-RTSP. I just downloaded the file, extracted it to the right location, and set VRChat to use it in Steam.
Other than that, I’ve had no problems with performance, anti-cheat, hand tracking, sound, or anything else, even on long play sessions! Aside from the video player fix, if I had started with WiVRn, the whole process would have been very simple. But now I have something to write about! So there’s that.
I did have many frustrations with my Quest 2 (particularly with the setup process after it bugged out and I had to reset it) but once I’m in-game it mostly stays out of the way. I am eagerly awaiting that Steam Frame headset that Valve is working on. Here’s hoping it’s within my budget!
And if you are interested in getting your headset (standalone or wired) working on Linux, the aformentioned Linux VR Adventures Wiki is a very thorough, but fairly approachable resource. There’s also a Matrix/Discord space if you need support.