59 lines
1.5 KiB
Nix

{
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 ];
};
};
};
}