{ pkgs, inputs, lib, ... }: { # for FO4 VR: # doesn't work. it's like the wivrn stuff doesn't transfer past MO2 # `echo "PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/wivrn/comp_ipc %command%" | sed -r "s/proton waitforexitandrun .*/proton waitforexitandrun \/media\/games\/fallout4vr_essentials_overhaul\/ModOrganizer.exe \"moshortcut:\/\/:Play Fallout Essentials\" /" | sh` services.wivrn = { enable = true; openFirewall = true; package = ( # https://github.com/NixOS/nixpkgs/pull/391367 pkgs.wivrn.overrideAttrs (old: { cmakeFlags = old.cmakeFlags ++ [ (lib.cmakeFeature "OPENCOMPOSITE_SEARCH_PATH" "${pkgs.opencomposite}/lib/opencomposite") ]; }) ); # Write information to /etc/xdg/openxr/1/active_runtime.json, VR applications # will automatically read this and work with wivrn defaultRuntime = true; # Executing it through the systemd service executes WiVRn w/ CAP_SYS_NICE # Resulting in no stutters! autoStart = true; # Config for WiVRn config = { enable = true; json = { # 1.0x display scaling scale = 1.0; # 100 Mb/s bitrate = 100000000; encoders = [ { encoder = "vaapi"; codec = "h265"; # 1.0 x 1.0 scaling width = 1.0; height = 1.0; offset_x = 0.0; offset_y = 0.0; } ]; application = [ pkgs.wlx-overlay-s ]; }; }; }; }