basic vr support

This commit is contained in:
Daniel Bulant 2026-04-12 23:12:32 +02:00
parent 3fa6ddfb04
commit 6472fa80cf
No known key found for this signature in database
3 changed files with 104 additions and 54 deletions

View file

@ -91,11 +91,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1775776853, "lastModified": 1775866625,
"narHash": "sha256-qEYbkG9vhwCSDydV8o/RrSM5TjDafJdlcCwRqFlRnMk=", "narHash": "sha256-NfzRZ5DZo8Mwb31ocimy3IMhr3kmYGQ3/ImfnEQkQLw=",
"owner": "9001", "owner": "9001",
"repo": "copyparty", "repo": "copyparty",
"rev": "ed516ddc20493e670c141c4a3811f93632be046e", "rev": "a5d859d2b18f53ccf236bc6229856f79139d531c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -208,11 +208,11 @@
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1743892246, "lastModified": 1775943689,
"narHash": "sha256-AHeavUWjnDPT/hffE5hM8RIew+mZJSSr9tUEiSvZW30=", "narHash": "sha256-0XBCoR1L5gYmh8VqZu0HcHsL4GeGXQMC0f3ARshf/rk=",
"owner": "rumboon", "owner": "rumboon",
"repo": "dolphin-overlay", "repo": "dolphin-overlay",
"rev": "55fec3268972876890d6081d3d76a701c37c01d7", "rev": "c32758737a0cb02d0bf380753d11df1b8537a944",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -494,11 +494,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775036584, "lastModified": 1775585728,
"narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", "rev": "580633fa3fe5fc0379905986543fd7495481913d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -582,11 +582,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1775727767, "lastModified": 1776004579,
"narHash": "sha256-vef6j024ZaMFT2CJXPEmyPLxwho4+tDc1FzKWV8XUhE=", "narHash": "sha256-9uEVLUueMTPu85dJMXLZ4NU36rCVbvUS/gGO1Eae5mw=",
"owner": "schembriaiden", "owner": "schembriaiden",
"repo": "helium-browser-nix-flake", "repo": "helium-browser-nix-flake",
"rev": "a22cee25640671f6e21b693b7e8cd0ca1349eb55", "rev": "d69553db8dd48fb6cab8c646b81892890f611a14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -602,11 +602,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775781825, "lastModified": 1776015217,
"narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=", "narHash": "sha256-PUb9TTfqsA1g+aHJt5s8tIP7QdX8xHeOtDMPVRuylfM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701", "rev": "f6196e5b4d3f0168d09feab9ba678fa18ca58cbb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -796,11 +796,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771865848, "lastModified": 1776007698,
"narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=", "narHash": "sha256-1baTmNmnYJwSKyim7pJoy5s5dYnO3BdU/oZHoJa06sI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960", "rev": "3e38db916aaecba0a7c7698c6df0c68acb89f312",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1025,11 +1025,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1775802594, "lastModified": 1775877135,
"narHash": "sha256-miydzsK4cMzBXoHw+/5Am4PwB/P/ifWOlfHHqFe7FKU=", "narHash": "sha256-nAqtUMy22olwyiOJB0CASVrbu5XB5+43GjlbIJ1KuvQ=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "63213c63766e5bb28e0e0b078c4628b01b24c92f", "rev": "f943da038fd668d435c2d17916577f295faa8839",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1099,11 +1099,11 @@
"nixpkgs": "nixpkgs_10" "nixpkgs": "nixpkgs_10"
}, },
"locked": { "locked": {
"lastModified": 1775791406, "lastModified": 1775964335,
"narHash": "sha256-uou25Y8kHz477am/W4b9mIrxYY+qxO5CEcjW/LJPs6w=", "narHash": "sha256-HfdUaZRiws8vCoWznWD9hHBl2j5JNRBO8/tAEtfxwHw=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "feff81fb337e4fc23c730b51e9367e42a282e53e", "rev": "7e4f954102c0b51f08512b3d7ce03d21582ad9c5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1140,11 +1140,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775365369, "lastModified": 1775970782,
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=", "narHash": "sha256-7jt9Vpm48Yy5yAWigYpde+HxtYEpEuyzIQJF4VYehhk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3", "rev": "bedba5989b04614fc598af9633033b95a937933f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1263,11 +1263,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1775595990, "lastModified": 1775811116,
"narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2", "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1311,11 +1311,11 @@
}, },
"nixpkgs_10": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1775126147, "lastModified": 1775888245,
"narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=", "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8d8c1fa5b412c223ffa47410867813290cdedfef", "rev": "13043924aaa7375ce482ebe2494338e058282925",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1599,11 +1599,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1775833726, "lastModified": 1775941509,
"narHash": "sha256-WOoaKroRdoiSCGOxNKbFvP0Q+qp30l2dPHBDmCh3fO4=", "narHash": "sha256-NlNzLZmr2ugPxruIM20XiOeMMhCpV+jMoDWiH4ZbTnM=",
"owner": "temidaradev", "owner": "temidaradev",
"repo": "rusic", "repo": "rusic",
"rev": "74e395f818b6bd8d25ef8315039be7416f173aa0", "rev": "34e87aa43374af774a56d011648d0229b69a3fb0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1816,11 +1816,11 @@
"nixpkgs": "nixpkgs_13" "nixpkgs": "nixpkgs_13"
}, },
"locked": { "locked": {
"lastModified": 1775744672, "lastModified": 1775961625,
"narHash": "sha256-Qg3Wnn3WYiiii35CE9kE+XX4ooSFzupAnGC1/NjI5C8=", "narHash": "sha256-8SjilptVv9dSTvn0Z5j65vHHu+flmPXeyrGaSyRJm7U=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "14a238beb0621977e9bf04cba68919d5650deea9", "rev": "0eaab249f5ca1c55921e99cfe07187410758c9fa",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -22,6 +22,32 @@
"udev.log_priority=3" "udev.log_priority=3"
]; ];
}; };
# vr
services.monado = {
enable = true;
defaultRuntime = true; # Register as default OpenXR runtime
};
systemd.user.services.monado.environment = {
STEAMVR_LH_ENABLE = "1";
XRT_COMPOSITOR_COMPUTE = "1";
WMR_HANDTRACKING = "0";
VIT_SYSTEM_LIBRARY_PATH = "${pkgs.basalt-monado}/lib/libbasalt.so";
};
programs.steam = {
enable = true;
package = pkgs.steam.override {
extraProfile = ''
# Fixes timezones on VRChat
unset TZ
# Allows Monado/WiVRn to be used
export PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1
'';
};
};
hardware.cpu.amd.updateMicrocode = true;
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
# package = unstable-pkgs.mesa.drivers; # package = unstable-pkgs.mesa.drivers;
@ -34,6 +60,7 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nvitop nvitop
basalt-monado
]; ];
hardware.nvidia = { hardware.nvidia = {
open = true; open = true;

View file

@ -13,6 +13,7 @@
inputs, inputs,
nix-monitor, nix-monitor,
rusic, rusic,
config,
... ...
}: }:
let let
@ -62,7 +63,6 @@ in
kdePackages.kimageformats kdePackages.kimageformats
power-profiles-daemon power-profiles-daemon
tail-tray tail-tray
steam
helium helium
opencode opencode
perf perf
@ -447,7 +447,29 @@ in
services.kdeconnect.indicator = true; services.kdeconnect.indicator = true;
services.blueman-applet.enable = true; services.blueman-applet.enable = true;
services.mpris-proxy.enable = true; services.mpris-proxy.enable = true;
xdg.mimeApps = { xdg = {
configFile."openxr/1/active_runtime.json".source =
"${pkgs.monado}/share/openxr/1/openxr_monado.json";
configFile."openvr/openvrpaths.vrpath".text = ''
{
"config" :
[
"${config.xdg.dataHome}/Steam/config"
],
"external_drivers" : null,
"jsonid" : "vrpathreg",
"log" :
[
"${config.xdg.dataHome}/Steam/logs"
],
"runtime" :
[
"${pkgs.opencomposite}/lib/opencomposite"
],
"version" : 1
}
'';
mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = {
@ -464,5 +486,6 @@ in
"x-scheme-handler/discord" = "vesktop.desktop"; "x-scheme-handler/discord" = "vesktop.desktop";
}; };
}; };
};
} }