1

Separate audio module into config and options

This commit is contained in:
2023-04-26 09:25:21 +02:00
parent af0b4dbc5d
commit 6a8d003f4a
2 changed files with 48 additions and 2 deletions

View File

@ -12,10 +12,10 @@ with mylib.modules; let
cfgfp = config.modules.flatpak;
in {
imports = [
./flatpak.nix
../flatpak.nix
];
options.modules.audio = import ./options.nix;
options.modules.audio = import ./options.nix { inherit lib; };
config = mkIf cfg.enable {
assertions = [

View File

@ -0,0 +1,46 @@
{
lib,
}:
with lib;
{
enable = mkEnableOpt "Audio module";
# TODO: Group these in categories (like instruments/VSTs or sth)
# TODO: Make it easier to add many yes/no options, similar to the flatpak stuff
# Hosts/Editing
carla.enable = mkEnableOpt "Carla (VST host)";
bitwig.enable = mkEnableOpt "Bitwig (Digital audio workstation)";
tenacity.enable = mkEnableOpt "Tenacity (Audacity fork)";
# Instruments/Plugins
# vcvrack.enable = mkEnableOpt "VCV-Rack (Eurorack simulator)"; # Replaced by cardinal
cardinal.enable = mkEnableOpt "Open Source VCV-Rack plugin wrapper";
# vital.enable = mkEnableOpt "Vital (Wavetable synthesizer)"; # Replaced by distrho
distrho.enable = mkEnableOpt "Distrho (Linux VST ports)";
# Misc
faust.enable = mkEnableOpt "Faust (functional DSP language)";
bottles.enable = mkEnableOpt "Bottles (flatpak)";
# TODO: Automatically add the needed paths, depends on the bottle though
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/Common Files/VST3
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/VstPlugins
yabridge = {
enable = mkEnableOpt "Yabridge (Windows VST plugin manager)";
autoSync = mkBoolOpt false "Sync yabridge plugins on nixos-rebuild";
};
noisesuppression = {
noisetorch = {
enable = mkEnableOpt "Noisetorch";
autostart = mkBoolOpt false "Autoload Noisetorch suppression";
};
# TODO: Store easyeffects presets/config (dconf com/github/wwmm/easyeffects ?)
easyeffects = {
enable = mkEnableOpt "EasyEffects";
autostart = mkBoolOpt false "Autoload EasyEffects suppression profile";
};
};
}