68 lines
1.7 KiB
Nix
68 lines
1.7 KiB
Nix
{ lib
|
|
, pkgs
|
|
, config
|
|
, ...
|
|
}:
|
|
|
|
with lib; let
|
|
cfg = config.simmer.audio;
|
|
in
|
|
{
|
|
|
|
options.simmer.audio = {
|
|
pipewire = {
|
|
enable = mkOption {
|
|
description = "Enable pipewire";
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
};
|
|
|
|
music = {
|
|
enable = mkOption {
|
|
description = "Install music player";
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
};
|
|
|
|
tools = {
|
|
helvum = mkOption {
|
|
description = "Install helvum";
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
easyeffects = mkOption {
|
|
description = "Install easyeffects";
|
|
type = types.bool;
|
|
default = false;
|
|
};
|
|
pavucontrol = mkOption {
|
|
description = "Install pavucontrol";
|
|
type = types.bool;
|
|
default = cfg.pipewire.enable;
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
environment.systemPackages = with pkgs; []
|
|
++ optional cfg.pipewire.enable pulseaudio
|
|
++ optional cfg.music.enable feishin
|
|
++ optional cfg.tools.helvum helvum
|
|
++ optional cfg.tools.easyeffects easyeffects
|
|
++ optional cfg.tools.pavucontrol pavucontrol;
|
|
|
|
|
|
security.rtkit.enable = mkIf cfg.pipewire.enable true;
|
|
services.pipewire = mkIf cfg.pipewire.enable {
|
|
enable = true;
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
pulse.enable = true;
|
|
};
|
|
};
|
|
}
|