From 6472fa80cf6e49cfa80796c139cabcd86c5eecd8 Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Sun, 12 Apr 2026 23:12:32 +0200 Subject: [PATCH] basic vr support --- flake.lock | 78 +++++++++++++++++----------------- servers/fern/configuration.nix | 27 ++++++++++++ servers/ui-mode/home.nix | 53 ++++++++++++++++------- 3 files changed, 104 insertions(+), 54 deletions(-) diff --git a/flake.lock b/flake.lock index ba2e19f..8e4a503 100644 --- a/flake.lock +++ b/flake.lock @@ -91,11 +91,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1775776853, - "narHash": "sha256-qEYbkG9vhwCSDydV8o/RrSM5TjDafJdlcCwRqFlRnMk=", + "lastModified": 1775866625, + "narHash": "sha256-NfzRZ5DZo8Mwb31ocimy3IMhr3kmYGQ3/ImfnEQkQLw=", "owner": "9001", "repo": "copyparty", - "rev": "ed516ddc20493e670c141c4a3811f93632be046e", + "rev": "a5d859d2b18f53ccf236bc6229856f79139d531c", "type": "github" }, "original": { @@ -208,11 +208,11 @@ "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1743892246, - "narHash": "sha256-AHeavUWjnDPT/hffE5hM8RIew+mZJSSr9tUEiSvZW30=", + "lastModified": 1775943689, + "narHash": "sha256-0XBCoR1L5gYmh8VqZu0HcHsL4GeGXQMC0f3ARshf/rk=", "owner": "rumboon", "repo": "dolphin-overlay", - "rev": "55fec3268972876890d6081d3d76a701c37c01d7", + "rev": "c32758737a0cb02d0bf380753d11df1b8537a944", "type": "github" }, "original": { @@ -494,11 +494,11 @@ ] }, "locked": { - "lastModified": 1775036584, - "narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", + "lastModified": 1775585728, + "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", + "rev": "580633fa3fe5fc0379905986543fd7495481913d", "type": "github" }, "original": { @@ -582,11 +582,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1775727767, - "narHash": "sha256-vef6j024ZaMFT2CJXPEmyPLxwho4+tDc1FzKWV8XUhE=", + "lastModified": 1776004579, + "narHash": "sha256-9uEVLUueMTPu85dJMXLZ4NU36rCVbvUS/gGO1Eae5mw=", "owner": "schembriaiden", "repo": "helium-browser-nix-flake", - "rev": "a22cee25640671f6e21b693b7e8cd0ca1349eb55", + "rev": "d69553db8dd48fb6cab8c646b81892890f611a14", "type": "github" }, "original": { @@ -602,11 +602,11 @@ ] }, "locked": { - "lastModified": 1775781825, - "narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=", + "lastModified": 1776015217, + "narHash": "sha256-PUb9TTfqsA1g+aHJt5s8tIP7QdX8xHeOtDMPVRuylfM=", "owner": "nix-community", "repo": "home-manager", - "rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701", + "rev": "f6196e5b4d3f0168d09feab9ba678fa18ca58cbb", "type": "github" }, "original": { @@ -796,11 +796,11 @@ ] }, "locked": { - "lastModified": 1771865848, - "narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=", + "lastModified": 1776007698, + "narHash": "sha256-1baTmNmnYJwSKyim7pJoy5s5dYnO3BdU/oZHoJa06sI=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960", + "rev": "3e38db916aaecba0a7c7698c6df0c68acb89f312", "type": "github" }, "original": { @@ -1025,11 +1025,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1775802594, - "narHash": "sha256-miydzsK4cMzBXoHw+/5Am4PwB/P/ifWOlfHHqFe7FKU=", + "lastModified": 1775877135, + "narHash": "sha256-nAqtUMy22olwyiOJB0CASVrbu5XB5+43GjlbIJ1KuvQ=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "63213c63766e5bb28e0e0b078c4628b01b24c92f", + "rev": "f943da038fd668d435c2d17916577f295faa8839", "type": "github" }, "original": { @@ -1099,11 +1099,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1775791406, - "narHash": "sha256-uou25Y8kHz477am/W4b9mIrxYY+qxO5CEcjW/LJPs6w=", + "lastModified": 1775964335, + "narHash": "sha256-HfdUaZRiws8vCoWznWD9hHBl2j5JNRBO8/tAEtfxwHw=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "feff81fb337e4fc23c730b51e9367e42a282e53e", + "rev": "7e4f954102c0b51f08512b3d7ce03d21582ad9c5", "type": "github" }, "original": { @@ -1140,11 +1140,11 @@ ] }, "locked": { - "lastModified": 1775365369, - "narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=", + "lastModified": 1775970782, + "narHash": "sha256-7jt9Vpm48Yy5yAWigYpde+HxtYEpEuyzIQJF4VYehhk=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3", + "rev": "bedba5989b04614fc598af9633033b95a937933f", "type": "github" }, "original": { @@ -1263,11 +1263,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1775595990, - "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", + "lastModified": 1775811116, + "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2", + "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e", "type": "github" }, "original": { @@ -1311,11 +1311,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1775126147, - "narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=", + "lastModified": 1775888245, + "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8d8c1fa5b412c223ffa47410867813290cdedfef", + "rev": "13043924aaa7375ce482ebe2494338e058282925", "type": "github" }, "original": { @@ -1599,11 +1599,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1775833726, - "narHash": "sha256-WOoaKroRdoiSCGOxNKbFvP0Q+qp30l2dPHBDmCh3fO4=", + "lastModified": 1775941509, + "narHash": "sha256-NlNzLZmr2ugPxruIM20XiOeMMhCpV+jMoDWiH4ZbTnM=", "owner": "temidaradev", "repo": "rusic", - "rev": "74e395f818b6bd8d25ef8315039be7416f173aa0", + "rev": "34e87aa43374af774a56d011648d0229b69a3fb0", "type": "github" }, "original": { @@ -1816,11 +1816,11 @@ "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1775744672, - "narHash": "sha256-Qg3Wnn3WYiiii35CE9kE+XX4ooSFzupAnGC1/NjI5C8=", + "lastModified": 1775961625, + "narHash": "sha256-8SjilptVv9dSTvn0Z5j65vHHu+flmPXeyrGaSyRJm7U=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "14a238beb0621977e9bf04cba68919d5650deea9", + "rev": "0eaab249f5ca1c55921e99cfe07187410758c9fa", "type": "github" }, "original": { diff --git a/servers/fern/configuration.nix b/servers/fern/configuration.nix index cf7d1c6..c1be84d 100644 --- a/servers/fern/configuration.nix +++ b/servers/fern/configuration.nix @@ -22,6 +22,32 @@ "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 = { enable = true; # package = unstable-pkgs.mesa.drivers; @@ -34,6 +60,7 @@ }; environment.systemPackages = with pkgs; [ nvitop + basalt-monado ]; hardware.nvidia = { open = true; diff --git a/servers/ui-mode/home.nix b/servers/ui-mode/home.nix index 0fd6b09..43b5572 100644 --- a/servers/ui-mode/home.nix +++ b/servers/ui-mode/home.nix @@ -13,6 +13,7 @@ inputs, nix-monitor, rusic, + config, ... }: let @@ -62,7 +63,6 @@ in kdePackages.kimageformats power-profiles-daemon tail-tray - steam helium opencode perf @@ -447,21 +447,44 @@ in services.kdeconnect.indicator = true; services.blueman-applet.enable = true; services.mpris-proxy.enable = true; - xdg.mimeApps = { - enable = true; + 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; - defaultApplications = { - "x-scheme-handler/http" = "zen-beta.desktop"; - "x-scheme-handler/https" = "zen-beta.desktop"; - "x-scheme-handler/chrome" = "zen-beta.desktop"; - "text/html" = "zen-beta.desktop"; - "application/x-extension-htm" = "zen-beta.desktop"; - "application/x-extension-html" = "zen-beta.desktop"; - "application/x-extension-shtml" = "zen-beta.desktop"; - "application/xhtml+xml" = "zen-beta.desktop"; - "application/x-extension-xhtml" = "zen-beta.desktop"; - "application/x-extension-xht" = "zen-beta.desktop"; - "x-scheme-handler/discord" = "vesktop.desktop"; + defaultApplications = { + "x-scheme-handler/http" = "zen-beta.desktop"; + "x-scheme-handler/https" = "zen-beta.desktop"; + "x-scheme-handler/chrome" = "zen-beta.desktop"; + "text/html" = "zen-beta.desktop"; + "application/x-extension-htm" = "zen-beta.desktop"; + "application/x-extension-html" = "zen-beta.desktop"; + "application/x-extension-shtml" = "zen-beta.desktop"; + "application/xhtml+xml" = "zen-beta.desktop"; + "application/x-extension-xhtml" = "zen-beta.desktop"; + "application/x-extension-xht" = "zen-beta.desktop"; + "x-scheme-handler/discord" = "vesktop.desktop"; + }; }; };