cleverca22
2/1/2016 - 5:21 AM

module.nix

{ pulseaudioFull }:

pulseaudioFull.overrideDerivation (old: {
    src = /home/clever/x/pulseaudio-7.1-modified;
    enableParallelBuilding = true;
})
{ pkgs, ... }:

{
  services.udev.extraRules = ''
    SUBSYSTEM!="sound", GOTO="pulseaudio_end"
    ACTION!="change", GOTO="pulseaudio_end"
    KERNEL!="card*", GOTO="pulseaudio_end"

    SUBSYSTEMS=="pci", RESULT=="?*", ATTRS{vendor}=="0x1002", ATTRS{device}=="0x4383", ENV{PULSE_PROFILE_SET}="formula-z.conf"

    LABEL="pulseaudio_end"
  '';
  hardware = {
    pulseaudio = {
      enable = true;
      package = pkgs.pulseCustom;
      configFile = pkgs.runCommand "config.pa" {} ''
        cat ${./default.pa} ${./extra.pa} > $out
      '';
    };
  };
  nixpkgs.config = {
    packageOverrides = pkgs: rec {
      pulseCustom = pkgs.callPackage ./pulse.nix { };
    };
  };
}