@@ -8,36 +8,9 @@ in
|
|||||||
{
|
{
|
||||||
options.roles.audio = {
|
options.roles.audio = {
|
||||||
enable = mkEnableOption "Enable the audio role";
|
enable = mkEnableOption "Enable the audio role";
|
||||||
pulseAudio = mkOption { type = types.bool; default = false; description = "Use PulseAudio exclusively instead of Pipewire"; };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
config = mkIf cfg.enable
|
||||||
(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; [
|
environment.systemPackages = with pkgs; [
|
||||||
paprefs
|
paprefs
|
||||||
@@ -45,10 +18,23 @@ in
|
|||||||
pulsemixer
|
pulsemixer
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.pulseaudio = {
|
||||||
|
package = pkgs.pulseaudioFull;
|
||||||
|
extraConfig = ''
|
||||||
|
load-module module-combine-sink
|
||||||
|
load-module module-switch-on-connect
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
services.squeezelite = {
|
services.squeezelite = {
|
||||||
#enable = true;
|
#enable = true;
|
||||||
pulseAudio = true;
|
pulseAudio = true;
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user