[audio] Setup squeezelite

This commit is contained in:
2025-02-16 18:41:50 -08:00
parent 50f9defdd5
commit 1d0b3a0367

View File

@@ -8,9 +8,36 @@ in
{
options.roles.audio = {
enable = mkEnableOption "Enable the audio role";
pulseAudio = mkOption { type = types.bool; default = false; description = "Use PulseAudio exclusively instead of Pipewire"; };
};
config = mkIf cfg.enable
config = mkIf cfg.enable (mkMerge [
(mkIf cfg.pulseAudio {
services.pipewire.enable = false;
services.pulseaudio = {
enable = true;
package = pkgs.pulseaudioFull;
systemWide = true;
extraConfig = ''
load-module module-combine-sink
load-module module-switch-on-connect
'';
};
nixpkgs.config.pulseaudio = true;
})
(mkIf (!cfg.pulseAudio) {
services.pipewire = {
enable = true;
systemWide = true;
audio.enable = true;
pulse.enable = true;
alsa = {
enable = true;
support32Bit = true;
};
jack.enable = true;
};
})
{
environment.systemPackages = with pkgs; [
paprefs
@@ -18,17 +45,10 @@ in
pulsemixer
];
services.pipewire = {
services.squeezelite = {
enable = true;
pulse.enable = true;
pulseAudio = true;
};
services.pulseaudio = {
package = pkgs.pulseaudioFull;
extraConfig = ''
load-module module-combine-sink
load-module module-switch-on-connect
'';
};
};
}
]);
}