Using funscripts on Linux is hard. Most software is released for Windows, and even if a Linux version exists, a different component in your software chain likely doesn’t support Linux. Here is the method I’ve used to get my funscript playback working, both with and without VR, on Linux. I use Valve Index and SR6.
Software needed
SteamVR: Only supports X11. I couldn’t get this working on Wayland.
XTPlayer: The only natively Linux funscript player I know of. However, I encountered a few problems and fixed them in my fork. I don’t have releases yet, but I’ll see if the developer wants these changes merged.
vr-video-player: The only VR player that I could get working on Linux. DeoVR, Whirligig, and others either don’t start or have issues. Unfortunately this means no passthrough. Only works on X11.
xdotool: Only on X11. You might be able to work without this.
Process
Boot XTPlayer and ensure your Funscript-compatible device works correctly by playing any video
Start SteamVR and wait for homescreen
Start playing your VR video of choice in XTPlayer, then double click the video to go fullscreen
Alt tab to terminal, then start vr-video-player:
./vr-video-player $(xdotool selectwindow) # For rectangular video
./vr-video-player --sphere $(xdotool selectwindow) # For spherical video
The xdotool selectwindow command waits for you to click an X11 window. Click the fullscreened XTPlayer.
vr-video-player should now display the VR video while XTPlayer is controlling the playback + Funscript operation
If you need to change the video / you go out from fullscreen, you have to restart vr-video-player
If you want to jump to a different part in the video, you need to alt tab to XTPlayer. If you need to change your position / zoom level, you need to alt tab to vr-video-player.
As a bonus, for playing VR videos on Linux without Funscripts, I recommend mpv. Start video playback using mpv, fullscreen the video, and use vr-video-player as above. This way you don’t have to use the more complicated XTPlayer that has more nuances than the more basic mpv.
Previously(a few years ago) I used whirligig by installing LAVfilters into its proton prefix and using DirectShow. Of course no hardware acceleration so it was limiting.
Installing LAV Filters is no longer necessary to get media playback to work using windows applications; Although some applications like heresphere seem to perform better with LAV filters/Directshow (You can use steamtinkerlaunch to install LAV filters into the prefix, make sure to run it using the same version of proton that you use to launch the application.)
I have been using DeoVR (Streaming content from SLR) with Proton-GE-10.25 and it works fine up to 4K (1920P per eye) due to no hardware acceleration.
PLAY’A VR has audio/video sync issues.
The issue with higher resolution videos is that WINE’s current media foundation implementation does not support hardware acceleration and building and adding the VA-API or NV codec to the proton build is not enough. It will require changes to DXVK and WINE’s media foundation implementation to get hardware acceleration to work due to having to access VRAM.
As for getting SteamVR working on Wayland add this launch option to SteamVR:
GDK_BACKEND=x11 WAYLAND_DISPLAY=“” %command%
I had luck with WiVRn + Heresphere ~6 months ago. Heresphere was a little tricky to work out but you just have to install and run through Proton. Then install K-Lite codec pack through protontricks into the prefix. Worked well enough but I just don’t have the storage to be keeping VR videos around. Kinda miss being able to stream on the Quest 3 + MFP with SLR.