I can launch ALVR fine, and SteamVR launches fine through the Steam launcher. However, ALVR has to launch SteamVR itself in order to function properly. When it tries to do so, I get this error:
steam.desktop isn’t executable, and (unsurprisingly) the KIO client can’t make it executable.
It’s not supposed to be an executable either, .desktop files are just text files with metadata.
I’ve not used ALVR before. Do you select the file to execute in a menu somewhere? If so, read that .desktop file and give it the path (and arguments) the .desktop executes instead.
Ah, I always wondered how this is working. When I had ALVR running and manually ran SteamVR, then SteamVR kind of detected my Oculus Quest, but I couldn’t run any VR app and nothing showed up on the Oculus Quest…
This function has a bunch of code that I’m not really able to decipher due to unfamiliarity with the codebase and backend functionality of the app. Looks like some stuff for initializing the drivers for the streamer. It looks like the code relevant to this issue is here, where the OS-specific functions for launching SteamVR are called. For linux, linux_steamvr::start_steamvr().
This is deceptively simple, and I feel like this isn’t actually what’s happening when I push the button since we see the window popup from KIO client (as in pbek’s reply), which implies maybe XDG or something else is just being prompted to load a steam:// url without specifying an executable to load it it, then KIO picks it up and understands that the “Steam” program has to handle it. I’m not totally sure how a program would deliberately open a steam url with KIO like that, so I wouldn’t know what code to look for to confirm or deny that this is happening with ALVR.
I’m going to experiment with this behavior by creating a rust program that runs the exact code of the start_steamvr function and see if KIO handles it or if it just runs it without any bells and whistles. If the former occurs, then there might be a workaround in putting the steam executable in a place outside of the Nix store.
I can confirm that, in isolation, the start_steamvr() function above does not engage KIO like ALVR does, which means that either there’s something else going on to change the context in which start_steamvr() is run such that KIO gets used, or different code is being run when the Launch SteamVR button is pushed.