1
1
Fork 0
nixos/options/custom/services/pipewire.nix

40 lines
924 B
Nix
Raw Normal View History

{ config, lib, ... }:
with lib;
let
cfg = config.custom.services.pipewire;
in
{
options.custom.services.pipewire.enable = mkOption { default = false; };
config = mkIf cfg.enable {
# https://wiki.nixos.org/wiki/PipeWire
# https://gitlab.freedesktop.org/pipewire/pipewire
#!! Realtime priority may cause desync
#// security.rtkit.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# Avoid resampling if possible
# https://wiki.archlinux.org/title/PipeWire#Changing_the_allowed_sample_rate(s)
extraConfig.pipewire = {
"10-sample-rate"."context.properties"."default.clock.allowed-rates" = [
32000
44100
48000
88200
96000
176400
192000
];
};
};
};
}