lvra.gitlab.io/content/docs/distros/nixos.md
2024-08-12 18:41:22 +00:00

2.3 KiB

title
NixOS

NixOS

General documentation about VR is provided on the NixOS Wiki.

Monado

Monado is supported natively on NixOS using the services.monado since 24.05.

Make sure to follow the official guide as it sets the minimal requirements needed, then, if those aren't sufficient:

In case of the headset view stuttering, adding U_PACING_COMP_MIN_TIME_MS = "5"; to systemd.user.services.monado.environment could help. Adjust the value as needed.

Similarly, setting the cpu Niceness value to a higher priority manually with renice -20 -p $(pgrep monado) could also help. Unfortunately systemd.user.services.monado.serviceConfig.Nice = -20; does not seem to work.

Once monado is set up the nix way, use systemctl --user start monado.service to run it and systemctl --user stop monado.service to stop it.

VRChat

To get VRChat working with monado on nix, use the env PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/monado_comp_ipc %command% launch options on steam and click play with the "Launch VRChat in Steam VR" mode. It should open it on your desktop for preview and display it through monado.

SteamVR

SteamVR works like it does on other distros for the most part. Unfotrunately, if it doesn't work out of the box, troubleshooting it on NixOS can be close to impossible due to NixOS's structure and SteamVR's proprietary nature.

Asynchronous reprojection does not work without a kernel patch.

setcap doesn't work but can be done manually.

Envision

Envision has been packaged in nixos unstable but is still in early development and is not recommended. It may also mess with your monado.service setup in unexpected ways.

Community Overlays

Nixpkgs-xr provides overlays for the exisiting nixpkgs. If the mainline packages are broken for you (whether it be compiling or in function) for any reason, adding this, as described in the readme, might help.