Pipewire without Pulseaudio?

Apple iMac  late 2014
NixOS 24.11

Until now I have been using pipewire and pulseaudio.
Is it possible to use pipewire without pulse or alsa?

hardware.pulseaudio.enable = false;

nixpkgs.config = {
  allowUnfree = true; # allow unfree packages
  pulseaudio = true;
};

services.pipewire = {
  enable = true;
  alsa.enable = false;
  alsa.support32Bit = false;
  audio.enable = true;
  # pulse.enable = true; # working
  pulse.enable = false; # not working
};

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

ALSA and PA are 2 totally different things, disable PA yes because its awful in general but you need ALSA for pipewire to correctly talk to system.
ALSA isnt a package, its a linux driver.
This is a better def than i could give personally: What is the relation between ALSA and PulseAudio sound architecture? - Ask Ubuntu

Set it like this

services.pipewire = {
  enable = true;
  alsa.enable = true;
  alsa.support32Bit = true;
  pulse.enable = false;
  jack.enable = true; ### Optional, but awesome to have
};

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

Thanks for your help @Mephist0phel3s
but it seems that pulse can somehow replace alsa
as the following setting works:

hardware.pulseaudio.enable = false;
services.pipewire = {
  enable = true;
  alsa.enable = false;
  alsa.support32Bit = false;
  pulse.enable = true;
};

But your suggestions works too:

hardware.pulseaudio.enable = false;
services.pipewire = {
  enable = true;
  alsa.enable = true;
  alsa.support32Bit = true;
  pulse.enable = false;
};

Interesting that pavucontrol still works;
I thought it depended on pulse audio.

Maybe due to

nixpkgs.config = {
  allowUnfree = true; # allow unfree packages
  pulseaudio = true;
};

Disabling pulseaudio leads to rebuilds of many derivations which does not seem to finish (waited more than 24 hours).

How can I check whether pulse audio is still installed/running?

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.

Original question, sorry.

Easy method on desktop is just open your monitor utility, or a tool like sudo htop in a terminal and search for it like that.

For htop the hotkey for search is F3