Guide to VRC on Linux

First off i want to get something out of the way Experiences on Linux very on 3 things!

  • OS Specifications
  • Physical Machine Specifications
  • Linux Compatibility Layer for windows (AKA Proton/ProtonGE)

My Specs

OS: Pop!_OS 22.04 Jammy LTS
OS Type: 64-bit
Windowing system: X11
Gnome Version: 42.5
OS Boot: Physical

CPU: Core I7-8700K @ 3.70Hz x 12
GPU: Nvidia Geforce RTX 2080
Installed RAM: 32GiB DDR4

How to VRC on Linux

First off if you are on any other distro Make sure you have all your drivers installed Like Graphics and what not POP comes with Nvidia drivers by Default so you should be good if you are on POP

You are problaby wondering why VRC says only available on windows Well we need to enable Proton for Non Native linux titles this is an easy set up follow these images you should be fine
1.
image
2.


3.

And your done steam will prompt you to restart and you should be golden right well no

we need to see if vrchat Runs Smoothly Launch it and see if it runs smoothly see if the Multiplayer works connect to other worlds now there are 2 out comes

  1. If you experienced horrible performance please consider your specs and if your specs are up to par Go to this Github it is GE Proton it is a project that aims to improve on the Base Proton layer provided by Valve
    GitHub - GloriousEggroll/proton-ge-custom: Compatibility tool for Steam Play based on Wine and additional components

  2. if you ad no hick ups and everything worked fine we can move on to the next thing

Video Players
Now video players on linux isnt bread and butter some work some dont luckily for you i have found a video player that works under linux and this is a very Recognizable Usharp Video ill leave a link to the github for world creators

Avatars
Nothing to serious here ive noticed sometimes avatars will just bug out just hide and unhide the persons avatar and you should be fine

Thats about it you should be set leave your comments with your personal expierence with linux and let anyone know of your solutions ofr the problems that you have

5 Likes

Everything has worked just fine in desktop mode me besides some worlds having music that won’t stop from the toggle. To fix this i just removed the audio source from my output with Helvum (Helvum | Flathub).

Also avatar audio clips don’t seem to work at the moment. Not your avatar sounds, the other players sounds.

I’m on Fedora 39, Gnome 45 under Wayland.

If you plan on playing VR Chat in VR under wayland i recommend KDE Plasma because it currently supports DRM Leasing and Gnome doesn’t.

I recently started using ubuntu, and VRCHAT runs ok, after joining a public lobby my system crashes (and if i dont cap the FPS movement has a delay) i dont know if it has to do with my dell Inspiron or if i just need more RAM

Unfortunately I’m unable to start vrchat on the new ubuntu 24.04. I tried using proton-ge-custom and even conty.sh but cannot seem to start the game without running into issues or the anticheat system going off.

For the anticheat issue try installing the Proton EasyAntiCheat Runtime on steam, wouldn’t know what would cause it to not start though.

if you run into an issue with GE-Proton versions put this launch option (gamemoderun %command% --enable-avpro-in-proton) hope this helps

Hello, I tried to run VRChat on my computer, but whatever I do the game will always run in desktop mode.

I’ve tried many many things: reinstalling, different versions of SteamVR, using different versions of Proton and GE-Proton, and even messing around with OpenComposite and Monado<–(somewhat working), but it refuses to boot up in VR mode.

I have Debian testing (Trixie) on GNOME/X11 with Proton Experimental, and an Oculus Rift S if that helps.

Edit: Also, I do not have any EAC problems, only VR mode

Thought I’d add onto this as it’s prob what most people will find.

Post 1 of detailed guide to Get VR working with Video Players on Linux.
(New posters can only post 5 links and I registered simply to post this.)

Install KDE Plasma Desktop (Linux Mint)
Note: this doesn’t seem to matter. Many guide say you MUST use KDE but I’ve gotten this working with Linux Mint Cinnamon default GNOME.
I don’t Gnome give it a try without then in doubt install? ٩(^‿^)۶

To install KDE Plasma on Linux Mint, run the following command:

sudo apt install kde-plasma-desktop

After installation, log out, and choose KDE from the session options at the login screen.

Ensure Correct Drivers
YOU MUST USE PROPRIETARY DRIVERS. don’t bother trying use the Open source ones - it will not work. Trust me I tried. That said please feel free to prove me wrong, I wish they did work!

Go to Menu > Control Center > Administration > Driver Manager.

Select the correct driver for your system.

Headset Setup in Developer Mode

Your VR headset must be in Developer Mode for some configurations. Follow this YouTube guide.

Installing ALVR (for Streaming VR to the Headset)

Follow this YouTube guide for installing ALVR.

If you can’t find ALVR in the apps, note that it’s hidden under “Unknown Sources” after the Quest software v54 update. To locate it:

Go to the “Search apps” bar.

Click on the search bar and pull down the “All” menu to find it.

Set Steam VR Beta:

Open Steam VR Properties > Betas and choose SteamVR Beta Update.

Let it update and restart Steam.

See Next Post- this tutorial was split as I’m unable to post more than 5 links.
This forum seems to think code is links. (゚ヮ゚)
------------>

Post 2 of detailed guide to Get VR working with Video Players on Linux.
(New posters can only post 5 links and I registered simply to post this.)

(〃^∇^)ノ Right where were we…

Configure Steam VR with Proton

Install ProtonUp-Qt from this GitHub link:

Open ProtonUp-Qt and click Show Game List.

Look at the compatibility suggestion. foir Vrchat its proton-experimental for Vrchat

You need to install

Steam-Play-None FOR Vrchat

AND proton_experimental FOR Steam VR

!Install using ProtonUp-Qt. SET USING PREFERENCES ON STEAM AND VRCHAT.!

Note!
ALVR uses FFmpeg for all encoders. you must have it installed. it probably is… but check with

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

Restart Steam

SPECIAL NOTE FOR VIDEO PLAYERS. <—
Video players issue have nothing to do with alvr, it’s proton not working properly with video players if you want proton that works with video players, use
GE-Proton9-11-rtsp15

Best Configuration Recap: <— YOU WANT THIS ONE. ヽ(゜∇゜)ノ

works in VR with working TV.

Vrchat Compatibility: GE-Proton9-11

Vrchat Launch options: blank

Steam VR Compatibility: blank

Steam VR Launch options
~/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh %command%

UPDATE: you seem to no longer need the Steam VR Launch command. Try blank first then if it won’t load put it in.

(>‘o’)> Blank means leave it blank. Do not type anything in.
Don’t type the word “blank” as a option!!

Desktop (Working):

Setup works for desktop but is only provided as a fallback if Best Configuration does not work. Will not work for VR.

  • VRChat Compatibility: GE-Proton8-25

  • VRChat Launch Options: blank

  • SteamVR Compatibility: blank

  • SteamVR Launch Options: blank

VR (Working Setup With no video):

This works for VR. You can do everything except play videos.
VIDEOS WILL NOT WORK WITH THIS SETUP.

Video when played plays audio (so it it loading!) but has no picture.

Check if you can see Vrchat in your headset.

If you cannot - see if the headset is playing any video.

you can use the Vr View built into Steam VR

to check if the headset is working.

Fix Blank picture in headset

If you can see the Steam Home in VR View but the picture is blank, do the following:

Go to Steam VR Properties > General > Launch Options.

Enter the following command:

~/.local/share/Steam/steamapps/common/SteamVR/bin/vrmonitor.sh %command%

If Vrchat plays now GREAT. Now check a video player.

If videos aren’t working in VRChat, you need to emulate the AVPro player. Do the following:

In Steam Launch Options for VRChat, (Geveral > Launch Options) add the following command:

gamemoderun %command% --enable-avpro-in-proton

while this setup worked perfectly for desktop VRchat crashed while using a headset. It seems like compatability settings in Vrchat changed.

Make sure Steam VR is not trying to update! If it is LET IT.

Run Flow (your steps to play Vrchat)

1: open Steam

2: If using Wired ALVR open ADBForwarder

3: open ALVR (it’s in your home folder)
connect headset and look inside

4 :press the notification to allow USB to connect in your headset (look inside)

5: look at ALVR. When it says Connected you’re ready.

6: Return to ALVR and press “Launch steam VR” if it shows. You can also launch steam Vr manually, but this way you can see if ALVR is connected easier.

7: Wait for ALVL to connect
ALVR IS WIRELESS BY THE WAY.

Special mention USB/wired Setup for ALVR

ALVR Wired With USB Setup
open Home > abd forwarder
open terminal
drag ADBForwarder into terminal

what you want to see
Platform: Linux
ADBForwarder started.

ADBForwarder
Connected device: (numbers and letters)
Successfully forwarded device: (same numbers and letters)

cool! don’t close this terminal.
go to Home > ALVR Launcher. Open ALVR Launcher with clicking.
press launch
Make sure steam is open > press Launch Steam VR

Do not skip this step. ALVR Wired will not work if you skip this.
Switch the connection streaming protocol to TCP in Settings > Connection.

If your headset is detected, click “Trust.” Click “Edit”, “Add new” and change the IP address to 127.0.0.1

Some guides show a . at the end! do NOT add that! (☉‿☉)
127.0.0.1 NOT 127.0.0.1. ← no period.

If your headset is not detected, click “Add device manually” and use the IP address 127.0.0.1 Use the hostname displayed on your headset screen.

You should be able to set the IP manually from Add Device Manually, looking in headset and setting the number where the XXXX is then clicking add new and setting 127.0.0.1

In my case I could not get ALVR to connect this way. I picked Trust from the detected device then tried to edit the IP.

For some infernal reason adding manually was not working. it was connecting via qifi relentlessly! this was fixed by
clicking edit, setting the IP to 127.0.0.1 clicking Add New setting THAT to 127.0.0.1
clicking save, closing ALVR and clicking edit where it now only had one IP.
Odd. Strange. Worked.

Permission Denied?
Two possible causes for this
1:(one time setup)
ADBForwarder (home > ADBForwarder (folder) or ADBForwarder
ALVR Launcher (home > alvr_launcher_linux> (folder) file ALVR Launcher
doesn’t have properties (tab) > permissions (tab) allow executing file as program (checkmark) selected.

2: you have ALVR open already, close it.

Anti cheat errors
just close Vrchat > and reopen. If keeps happening Close Vrchat AND CLOSE STEAMVR OR YOU WILL GET STUCK IN FOREVER UPDATESgo to properties > Installed files > Verify Integrity of Game Files
after its done make sure Compatibility did not change!

8: Start Vrchat
Open Vrchat from steam and choose launch with VR
(ノ◕ヮ◕)ノ*:・゚✧

Final notes

Where are my photos?!

/Home/.local/share/Steam/steamapps/compatdata/ANUMBER/pfx/drive_c/users/steamuser/Pictures/VRChat
When you get to
/Home/.local/share/Steam/steamapps/compatdata you will see quite a few folders. Do a search in this folder for Vrchat because the camera images are saved VRChat this will let you see which folder has your camera images. Once you find it favorite that folder.

Laggy? Crashy?
turn off Anti Ailisaing.
Graphics Quality > Anti-aliasing
Some worlds I set it to 2x but its usually off. SO MUCH BETTER.

Cups of coffee consumed while testing, crashing, crying and making this guide 26
Time and effort 2 months.
Hope it helps you!!!
:hearts:₊·◟(˶╹̆ꇴ╹̆˵)◜‧・

Script To Launch Faster!
I’ve been playing with a script to get everything to work faster.
Intended for when it all works manually, this will save you so much time having to open all the things Linux requires to play.

1: save the code as whatever.py (example startvr.py)
2: go to properties > permissions > check “allow execute file as program”

When you want to play
1: open a terminal in the directory
(for mint just left click where it is > open in terminal)

2: type python name.py example python vr.py
3: press enter. you will see a box pop up with buttons!
4: click RUN ALL
it’s going to try to open ADB forwarder (assuming wired)
then open ALVR Launcher
Then open Steam VR
Then Open Vrchat

All in one click
And if something gums up the buttons are there to open each item individually.

import tkinter as tk
import subprocess
import time
import threading
from pathlib import Path

class VRLauncher:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("VR Launcher")
        self.HOME = str(Path.home())

        # Simple RUN ALL button at top
        tk.Button(self.root, text="RUN ALL", command=self.run_all).pack(pady=10)

        # Basic buttons
        buttons = [
            ("Start ADBForwarder", self.run_adbforwarder),
            ("Start ALVR", self.run_alvr_launcher), 
            ("Start SteamVR", self.run_steamvr),
            ("Start VRChat", self.run_vrchat)
        ]

        for text, cmd in buttons:
            tk.Button(self.root, text=text, command=cmd).pack(pady=2)

    def run_adbforwarder(self):
        subprocess.Popen(["gnome-terminal", "--working-directory=" + self.HOME + "/adbforwarder", "--", "bash", "-c", "./ADBForwarder; exec bash"])

    def run_alvr_launcher(self):
        subprocess.Popen(["gnome-terminal", "--", "bash", "-c", f"cd '{self.HOME}/alvr_launcher_linux' && './ALVR Launcher'; exec bash"])

    def run_steamvr(self):
        subprocess.Popen([f"{self.HOME}/.local/share/Steam/ubuntu12_32/steam", "-srt-logger-opened", "steam://rungameid/250820"])

    def run_vrchat(self):
        subprocess.Popen([f"{self.HOME}/.local/share/Steam/ubuntu12_32/steam", "steam://rungameid/438100"])

    def run_all(self):
        def execute():
            self.run_adbforwarder()
            time.sleep(5)
            self.run_alvr_launcher()
            time.sleep(5)
            self.run_steamvr()
            time.sleep(5)
            self.run_vrchat()
        
        threading.Thread(target=execute, daemon=True).start()

if __name__ == "__main__":
    VRLauncher().root.mainloop()

v2

I am currently facing the issue that no button, trigger, analog stick input is registered from the knuckles (Index) under Linux, but only in VRChat… Every other VR-Application works fine.

I can see my controllers in VR-Chat with a littlebit bugged out texture where the battery symbol should be, but they don´t show the button presses either…

The application shows up as “Wine Test Environment” in the controller binding UI (guess this is due to proton).
Guess somehow there is an issue between VRChat and the OpenXR Runtime in Proton. Tried Proton Experimental Beta branch as well, didn´t change anything…

Otherwise i am on SteamVR beta 2.9.4 currently. Wondering if someone else is facing the issue as well where no input is registering?