complete-computing-environment/nixos-audio.org

1.4 KiB

NixOS Audio

I use PipeWire because it implements JACK Audio Connection Kit and roam:Pulseaudio interfaces and supports bluetooth devices. this means that I can run TidalCycles straight to bluetooth without resorting to terrible loopback/monitor hacks.

{ pkgs, ... }:

with pkgs; {
  environment.systemPackages = [ qjackctl easyeffects pulsemixer ];

  hardware.bluetooth = {
    enable = true;
    package = bluez5;
    settings = {
      General = { Enable = "Source,Sink,Media,Socket"; };
    };
  };

  security.rtkit.enable = true;

  # https://nixos.wiki/wiki/PipeWire#Bluetooth_Configuration this is cool.
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    jack.enable = true;
  };
}
{ ... }:

{
  services.easyeffects.enable = false;
  # programs.dconf.enable = true;
}