{ pkgs, ... }:
{
  environment.systemPackages = [
    pkgs.easyeffects
    #pkgs.pamixer
    pkgs.pavucontrol
    pkgs.pwvucontrol
    pkgs.qpwgraph
  ];

  security.pam.loginLimits = [
    { domain = "@audio"; item = "memlock"; type = "-"   ; value = "unlimited"; }
    { domain = "@audio"; item = "rtprio" ; type = "-"   ; value = "99"       ; }
    { domain = "@audio"; item = "nofile" ; type = "soft"; value = "99999"    ; }
    { domain = "@audio"; item = "nofile" ; type = "hard"; value = "524288"    ; }
  ];

  security.rtkit.enable = true;

  services.pipewire = {
    alsa.enable = true;
    alsa.support32Bit = true;
    enable = true;
    jack.enable = true;
    #package = pkgs.master.pipewire;
    pulse.enable = true;
    wireplumber = {
      enable = true;
      #package = pkgs.master.wireplumber;
    };

    # use the example session manager (no others are packaged yet so this is enabled by default,
    # no need to redefine it in your config for now)
    # media-session.enable = true;
  };

  #sound.enable = true; # disabled per https://github.com/NixOS/nixpkgs/issues/319809
}
