When I start Monado with my Valve Index headset plugged in, the screen blinks 3-4 times, and the LED on the front of the headset switches to green briefly before turning red. After this, the headset does not attempt to reconnect or display anything further.
Hardware and Software:
OS: NixOS 25.05 (Warbler) x86_64
Kernel: Linux 6.12.9-xanmod1
Desktop Environment: Hyprland (Wayland)
CPU: Intel Core i9-13900KF
GPU: NVIDIA GeForce RTX 4080
VR Headset: Valve Index
Monado Version: (latest from NixOS unstable)
Steps to Reproduce:
-
Plug in the Valve Index headset (front LED on blue).
-
-
Observe the behavior: screen blinks 3-4 times, LED turns green, then red, and no further action occurs.
Logs or Outputs:
Below are the relevant logs from monado-service:
Jan 18 22:16:14 Main-PC monado-service[43804]: ################################################################################
Jan 18 22:16:14 Main-PC monado-service[43804]: # #
Jan 18 22:16:14 Main-PC monado-service[43804]: # The Monado service has started. #
Jan 18 22:16:14 Main-PC monado-service[43804]: # #
Jan 18 22:16:14 Main-PC monado-service[43804]: ################################################################################
Jan 18 22:16:14 Main-PC monado-service[43804]: U_PACING_LIVE_STATS=FALSE (nil)
...
Jan 18 22:16:32 Main-PC monado-service[43804]: ERROR [renderer_present_swapchain_image] vk_swapchain_present: VK_ERROR_UNKNOWN
Jan 18 22:16:33 Main-PC monado-service[43804]: WARN [vblank_event_func] vkWaitForFences: VK_TIMEOUT
Jan 18 22:16:34 Main-PC monado-service[43804]: WARN [vblank_event_func] vkWaitForFences: VK_TIMEOUT
Expected Behavior:
Monado should initialize the headset successfully, the LED should remain green, and the VR scene should be displayed correctly. I would like to test this with Beat Saber as an example application.
Additional Context:
My NixOS configuration includes the following setup for Monado:
{
namespace,
lib,
config,
pkgs,
...
}:
with lib;
let
cfg = config.${namespace}.home.vr;
in
{
options.${namespace}.home.vr = {
enable = mkEnableOption "Enable FOSS VR stack";
};
config = mkIf cfg.enable {
xdg.configFile = {
"openxr/1/active_runtime.json".text = ''
{
"file_format_version": "1.0.0",
"runtime": {
"name": "Monado",
"library_path": "${pkgs.monado}/lib/libopenxr_monado.so",
"MND_libmonado_path": "${pkgs.monado}/lib/libmonado.so"
}
}
'';
"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
}
'';
};
};
}
I also have custom overlays for Monado defined in my Nix setup:
{ inputs, ... }:
final: prev: {
monado = prev.monado.overrideAttrs (old: {
cmakeFlags = [
(inputs.nixpkgs.lib.cmakeBool "XRT_FEATURE_SERVICE" true)
(inputs.nixpkgs.lib.cmakeBool "XRT_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true)
(inputs.nixpkgs.lib.cmakeBool "XRT_HAVE_STEAM" true)
(inputs.nixpkgs.lib.cmakeBool "CMAKE_EXPORT_COMPILE_COMMANDS" true)
(inputs.nixpkgs.lib.cmakeBool "XRT_HAVE_SYSTEM_CJSON" true)
];
});
}
Please let me know if there’s any additional information or logs required.
When I start Monado with my Valve Index headset plugged in, the screen blinks 3-4 times, and the LED on the front of the headset switches to green briefly before turning red. After this, the headset does not attempt to reconnect or display anything further.
Hardware and Software:
OS: NixOS 25.05 (Warbler) x86_64
Kernel: Linux 6.12.9-xanmod1
Desktop Environment: Hyprland (Wayland)
CPU: Intel Core i9-13900KF
GPU: NVIDIA GeForce RTX 4080
VR Headset: Valve Index
Monado Version: (latest from NixOS unstable)
Steps to Reproduce:
Logs or Outputs:
Below are the relevant logs from monado-service:
Expected Behavior:
Monado should initialize the headset successfully, the LED should remain green, and the VR scene should be displayed correctly. I would like to test this with Beat Saber as an example application.
Additional Context:
I also have custom overlays for Monado defined in my Nix setup:
Please let me know if there’s any additional information or logs required.