{ outputs, options, config, lib, pkgs, ... }:
let cfg = config.modules.hardware.pipewire;
in {
  options.modules.hardware.pipewire = { enable = lib.mkEnableOption false; };

  config = lib.mkIf cfg.enable {
    # resolve racial conflict between 
    # pulseaudio and pipewire
    # its deprecated now the west has fallen
    # sound.enable = lib.mkDefault false;

    hardware.pulseaudio.enable = false;

    # what is this for will source games
    # still work what
    security.rtkit.enable = true;

    services.pipewire = {
      enable = true;
      alsa.enable = true;
      alsa.support32Bit = true;
      jack.enable = true;
      pulse.enable = true;
    };

    # unsupported apps that use these
    environment.systemPackages = with pkgs; [ pulseaudio alsa-utils pamixer ];

  };
}