1

replace audio extraPackages with options

This commit is contained in:
2022-08-09 16:39:46 +02:00
parent 72626a1013
commit 5429f44fd1

View File

@ -1,4 +1,4 @@
{ config, lib, mylib, pkgs, ... }: { config, nixosConfig, lib, mylib, pkgs, ... }:
with lib; with lib;
with mylib.modules; with mylib.modules;
@ -14,20 +14,19 @@ in {
options.modules.audio = { options.modules.audio = {
enable = mkBoolOpt false "Configure for realtime audio and enable a bunch of music production tools"; enable = mkBoolOpt false "Configure for realtime audio and enable a bunch of music production tools";
carla.enable = mkBoolOpt false "Enable Carla + guitar-specific stuff"; carla.enable = mkBoolOpt false "Enable Carla + guitar-specific stuff";
# TODO: Make it easier to add many yes/no options, similar to the flatpak stuff
bitwig.enable = mkBoolOpt false "Enable Bitwig Studio digital audio workstation"; bitwig.enable = mkBoolOpt false "Enable Bitwig Studio digital audio workstation";
# TODO: Add bottles audio bottle config link faust.enable = mkBoolOpt false "Enable the Faust functional DSP language";
tenacity.enable = mkBoolOpt false "Enable Tenacity";
bottles.enable = mkBoolOpt false "Enable Bottles to emulate windows VSTs (flatpak)"; bottles.enable = mkBoolOpt false "Enable Bottles to emulate windows VSTs (flatpak)";
vcvrack.enable = mkBoolOpt false "Enable the VCV-Rack Eurorack simulator";
# TODO: Vital derivation (adapt from aur)
yabridge = { yabridge = {
enable = mkBoolOpt false "Enable yabridge + yabridgectl"; enable = mkBoolOpt false "Enable yabridge + yabridgectl";
autoSync = mkBoolOpt false "Sync yabridge plugins on nixos-rebuild"; autoSync = mkBoolOpt false "Sync yabridge plugins on nixos-rebuild";
}; };
extraPackages = mkOption {
type = types.listOf types.package;
default = [ ];
description = "Extra packages to install";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -50,7 +49,10 @@ in {
(optionals cfg.carla.enable [ carla gamemode ]) (optionals cfg.carla.enable [ carla gamemode ])
(optionals cfg.yabridge.enable [ yabridge yabridgectl ]) (optionals cfg.yabridge.enable [ yabridge yabridgectl ])
(optionals cfg.bitwig.enable [ bitwig-studio ]) (optionals cfg.bitwig.enable [ bitwig-studio ])
cfg.extraPackages (optionals cfg.faust.enable [ faust ])
(optionals cfg.tenacity.enable [ tenacity ])
(optionals cfg.vcvrack.enable [ vcv-rack ])
(optionals nixosConfig.services.pipewire.enable [ helvum easyeffects ])
]; ];
# NOTE: This desktop entry is created in /etc/profiles/per-user/christoph/share/applications # NOTE: This desktop entry is created in /etc/profiles/per-user/christoph/share/applications