protonscr

[BUG] Pipewire manager breaks existing links

steamvrclosed bugFixed in Main
ValveSoftware/SteamVR-for-Linux#897 · opened 2026-05-22 by Packetdancer · updated 2026-07-01 · 16 comments · github
PPacketdancer 2026-05-22 github

A number of users have reported issues with Pipewire breaking their existing configurations. As these are mostly just hanging around as side commentary in other issues (notably #876 and #873), I decided I should make a new issue to track some use cases so that there's some actual concrete setups to test with (which aren't buried in comment threads on only tangentially-related Pipewire issue tickets).

So, if you are using Pipewire and SteamVR 2.16.5 (or later, as future beta builds go out), and have a scenario where you're seeing a Pipewire configuration getting "broken" in a way that isn't expected, please add a short summary here. (Maybe even a screenshot of a patchbay visualization before running SteamVR and after it starts.)

This will help actually build some tests to ensure the Pipewire management works the way people expect/want, as much as possible.

MMooshPaw 2026-05-22 github

Hey there

The issue is pretty easy to replicate, both are related and happen consistently
Requirements: Connect a Meta Quest headset via Steam Link
(There's a chance other wireless headsets are affected as well such as Pico or Vive, but haven't seen them reported, maybe due to low usage)

What happens: External applications don't connect their nodes correctly, this includes:
Discord, browser and every app outside of Steam not having audio on the HMD
WayVR not having pipewire streams connected for screenshare
Spout2VR | Pipewire video (OBS) not receiving input despite being told to connect

Spout2VR is specially noticeable on VRChat, as any loading screen will disconnect the node from the Pipewire video source on OBS and has to be manually reconnected with tools such as qpwgraph

For the hang when disconnecting, i have more success replicating the issue when I open a game and close it before quitting SteamVR. Steam is also unable to close the process and must be killed with other methods (Terminal, GUI via System monitor or Mission Center)

As far as wired headsets go, I don't have a native SteamVR HMD, but I can connect my Quest 2 via ALVR, where i don't have a single issue regarding pipewire audio or video, suggesting it's an issue with the VRLink driver

PPacketdancer 2026-05-22 github

Hang when disconnecting/exiting SteamVR is a separate issue in the tracker (and I already have a fix for that, though it's not yet pushed into any beta build).

So, to clarify: when you talk about Discord, what you mean is you have Discord wired in Pipewire to specific outputs, and when connecting via VRLink, those connections go away and Discord is left unconnected? Or do I misunderstand?

PPacketdancer 2026-05-23 github

Okay, thanks for the edits for clarification!

That gives a good starting point, and I think I see how some of this can be cleaned up. Still interested in other failing use cases if others have some.

MMooshPaw 2026-05-24 github

This might be some of the last testing i can do for the next couple weeks due to college and stuff
I think the pipewire behavior of Steam is "sandboxed", resulting in Steam being able to communicate with Steam apps, and outside apps communicating with themselves, but not with Steam

For example, if I Screenshare on discord, route discord audio to my Headphones or Speakers, use Firefox or a music app through my headphones, etc. They all get audio and behave just fine even when connected to SteamVR

If i instead tell those apps to route the audio to the HMD they fail to do so. Apps that screenshare "from Steam" (like WayVR Screenshare) fail to create any nodes

This connects to my previous report, so any games launched from Steam will also fail to create nodes, stuff like Spout2PW from a Steam Game (VRChat, Warudo, etc)

Now screensharing from discord to a steam game seems to work fine, but probably because it doesn't intersect with steam directly, and rather use XDG Portals and call the window through other methods, whereas WayVR requires the compositor provided by SteamVR

Things that remain to be tested:

  • Screen capture from OBS (also using XDG Portals rather than vkcapture or Pipewire video)
  • Non-Steam games launched through Steam
  • More debugging for Discord screenshare, although i did manage to screenshare i didn't have anyone to tell me if there were any issues regarding performance, quality, or specially audio.
Sslice-the-idiot 2026-05-28 github

is this issue specific to steam link or is it a whole steamvr wide issue?

Sslice-the-idiot 2026-05-28 github

oh and i can confirm audio when trying to capture with OBS doesn't work aswell

MMooshPaw 2026-05-28 github

is this issue specific to steam link or is it a whole steamvr wide issue?

Should only be SteamVR via Steam Link, but if you find anything with other methods, you should bring them up

PPacketdancer 2026-06-08 github

Discord, browser and every app outside of Steam not having audio on the HMD

One question here: I've heard a number of people complain about VRLink "stealing" pipewire (e.g. assigning things to the Steam Link output) for things run from Steam when they don't want it to. Having SteamVR force-route all system audio to the VRLink output feels like that might be a worse experience in that case?

MMooshPaw 2026-06-08 github

Well I'd expect it to work like other audio outputs

For example, if I set my default output on KDE to be Steam, I'd like everything to go through steam. If I make a specific app be routed elsewhere, it should do that too

Currently steam just drops the audio sources, never connects the nodes, so you never get audio through Steam


Something else that could be added is audio mirroring like in windows, so steam becomes the main output but also shares everything to a selected audio output

TThelvaen 2026-06-11 github

I can confirm I'm seeing the same behavior with my Quest Pro headset, feel free to ping me if you want some logs/screenshot of QPWGraph and other details that might help fix this issue.

PPacketdancer 2026-06-15 github

I have a fix for this (or really, a complete rewrite of the pipewire handling) in testing now, so hopefully it'll make it into 2.17.3.

What the new behavior will now do is that when VR starts up, it will set the default sink and source to the headset; when SteamVR exits, it will restore the old defaults. It will not try to manually maintain links to VR apps (as currently happens), and if you change the default source or sink it will assume you're deliberately overriding it, and will not further tweak it (including not changing it back after exiting).

The downside of this, however, is that for the small handful of folks who actually wanted the old behavior where only audio from VR applications was routed to the headset, you will now get all audio -- including desktop alerts/sounds (so Discord bloops, "you have email" dings, etc.

Sslice-the-idiot 2026-06-26 github

appears to be mostly fixed on my end, wayvr and discord play nice with steamvr now, though the built in desktop mirror still doesn't work

TThelvaen 2026-06-26 github

yup i can confirm it works.

IImSapphire 2026-06-28 github

Works on 2.17.3 for me! ❤️

PPacketdancer 2026-06-29 github

Yay! Okay, I'll close this out.

MMooshPaw 2026-07-01 github

Can confirm it works great
WayVR keeps the monitor connections between sessions
Spout2Pw also connects automatically with no issues
Discord audio works flawlessly
If i set discord to a specific output (such as headphones), steamVR doesn't interfere and keeps it that way, even after restarts

Amazing job

Nothing extracted yet.