diff --git a/home/modules/audio/default.nix b/home/modules/audio/default.nix index 92c02031..8e05dfc1 100644 --- a/home/modules/audio/default.nix +++ b/home/modules/audio/default.nix @@ -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 = [ diff --git a/home/modules/audio/options.nix b/home/modules/audio/options.nix index e69de29b..77947a8b 100644 --- a/home/modules/audio/options.nix +++ b/home/modules/audio/options.nix @@ -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"; + }; + }; +} \ No newline at end of file