If I disable pulse then I will not have any audio: pwvucontrol does not detect a soundcard.
No file has the sound device open:
➜ ls -1d /dev/snd/*
/dev/snd/by-path
/dev/snd/controlC0
...
➜ sudo lsof /dev/snd/*
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
Enabling pipewire.pulse enables audio
but the snd files are opened by pipewire, not pulseaudio:
services.pipewire.pulse.enable = true;
➜ sudo lsof /dev/snd/*
lsof: WARNING: can’t stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pipewire 1980 klt 64u CHR 116,1 0t0 317 /dev/snd/seq
pipewire 1980 klt 65u CHR 116,1 0t0 317 /dev/snd/seq
wireplumb 1982 klt 24u CHR 116,14 0t0 557 /dev/snd/controlC0
wireplumb 1982 klt 26u CHR 116,15 0t0 593 /dev/snd/controlC1
This shouldnt really be necessary but since you are curious on this in particular, if you want to ensure PA is fully and completely disabled, add this on top of what i mentioned previously:
hardware.pulseaudio.enable = false;
This will ban pulseaudio from touching the hardware at all
Thats because pulse can actually run as a full blown audio server that runs at the hardware level like ALSA. But if you run ALSA as the backend with PA as the front end it also works.
Pipewire does what these can do but also does screen capture stuff and can manage policies for bluetooth connected headphones. Pipewire is freakin dope bro, and very flexible.
It really comes down to use case and how much you really want to tinker with it, if tinkering is your aim jack2 would be something to look into along with the lsp-plugins pkg. Especially if you are a streamer, music junky or just an audiophile.
Jack can also serve as a drop in replacement for PA or ALSA if you really want it to as well because the full jack connection kit also comes with an audio server baked in.