Disable Pipewire sound while retaining video/screenshare functionality

So I just installed Fedora 39 KDE after a long time of avoiding distros that use pipewire as their sound server (for… reasons that will become obvious later) and I’m wondering whether or not there’s a way to disable pipewire as an audio server (using pulseaudio for sound instead) while keeping the video capture stuff necessary for wayland screen sharing (and other things probably). As to why I want to replace my sound server with an objectively worse one, well it’s because of this (yes I know that that’s for a different distro but as one of the posts on that thread says, it happens on all distros (and I’ve managed to replicate it myself on multiple ones) so it makes sense to link it here).

For reference, this is what I did to replace pipewire with pulse, or at least I think I did (I know that most people want to go the other way round but…):

sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
systemctl --user --now disable wireplumber.service
sudo systemctl --global disable wireplumber.service
sudo systemctl stop wireplumber.service
systemctl --user --now enable pulseaudio.service

The thing is, while the video thing that I had issues with no longer happens, a side effect is that screen sharing no longer works (because that’s the other thing that pipewire/wireplumber does), as evidenced by me trying to record my screen using one of those online screen recorders through firefox (surprise surprise, it doesn’t work, or at least it presents me with the “Allow site.com to see your screen?” popup thing and then KDE itself tells me to choose between “New Virtual Output” or “Laptop screen”, the latter doesn’t work, didn’t try the other one, also I should mention that I’m using the wayland session and that it does work on X11 because afaik that one doesn’t require pipewire for screen capture).

My question then is, is there a way to have pipewire’s sound stuff disabled while keeping everything necessary for screen sharing enabled? I know that it would be better to just… have pipewire as the sound server (as my issues aren’t related to pipewire itself but rather certain applications, in this case browsers, accessing it through pipewire-pulseaudio instead of addressing it directly, I think mpv works fine (don’t have it installed right here, that was on a one-off throwaway install) but since I watch basically all my media through a browser, it’s a complete dealbreaker) but…

Is there a way to do this, or should I just forgo screen sharing altogether (after all, I don’t use it basically whatsoever, I just want the option to… be there, just in case)? Or maybe there is a way to get pipewire to not drop frames while playing videos in browsers (specifically firefox)?

Removed server

Why not just use the volume controls to mute both the mic and speakers. That seems simplest to me. Then when you want sound turn it on and when not turn it off.

Nevermind, reinstalled Fedora and managed to achieve exactly what I wanted by doing the following:

  1. sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
  2. systemctl --user --now enable pulseaudio.service
  3. Open /usr/share/wireplumber/wireplumber.conf and comment out the lines beginning with api.alsa.*, api.bluez5.* and audio.convert.* under context.spa.libs
  4. sudo pkill -9 wireplumber && systemctl --user restart wireplumber.service
  5. (Optional, only if you want these changes to persist through wireplumber updates, at least I think this was wiped out after I let it be updated) sudo touch /usr/local/bin/replace-config.sh
  6. Copy the edited /usr/share/wireplumber/wireplumber.conf to somewhere else
  7. sudo nano /usr/local/bin/replace-config.sh (or whatever your preferred editor is) and type in the following:
cp /replace/with/path/to/edited/wireplumber.conf /usr/share/wireplumber/wireplumber.conf
chmod 644 /usr/share/wireplumber/wireplumber.conf
  1. sudo chmod +x /usr/local/bin/replace-config.sh
  2. sudo touch /etc/systemd/system/replace-config.service
  3. sudo nano /etc/systemd/system/replace-config.service and make the contents the following:
Description=Replace wireplumber.conf upon startup


  1. sudo systemctl daemon-reload Probably not necessary
  2. sudo systemctl --now enable replace-config.service

This works, but the “replace wireplumber.conf upon startup” part is probably slightly unsettling to some, so… use at your own risk.