{ lib, config, pkgs, ... }: with lib; with lib.custom; let cfg = config.hardware.audio; in { options.hardware.audio = with types; { enable = mkBoolOpt false "Enable Audio"; }; config = mkIf cfg.enable { # Enable sound with pipewire. hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this jack.enable = true; # 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) wireplumber.enable = true; }; sound = { enable = true; mediaKeys.enable = true; }; }; }