40 lines
924 B
Nix
40 lines
924 B
Nix
|
{ 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
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|