{ config, lib, pkgs, ... }: let library = import { inherit pkgs lib; }; mixxxBin = pkgs.writeShellScriptBin "mixxx" "${pkgs.mixxx}/bin/mixxx --settingsPath ${config.users.users.mainUser.home}/music-library/mixxx"; mixxxDesktop = library.desktopFile mixxxBin { longName = "Mixxx"; }; mixxxFreeBin = pkgs.writeShellScriptBin "mixxx-free" "${pkgs.mixxx}/bin/mixxx --settingsPath ${config.users.users.mainUser.home}/music-library-free/mixxx"; mixxxFreeDesktop = library.desktopFile mixxxFreeBin { longName = "Mixxx"; }; in { system.custom.audio = { enable = true; sinks = [ { name = "movieLimiterSink"; queue = [ { # compress all sounds plugin = "dyson_compress_1403"; label = "dysonCompress"; control = [ "0" # peak limit (dB) "1" # release time (secons) "0.2" # fast compression ration (unknown what that means) "0.8" # compression ratio ]; } { # limit sound plugin = "fast_lookahead_limiter_1913"; label = "fastLookaheadLimiter"; control = [ "20" # input gain (db) "-10" # limit (db) "1.1" # release time (s) ]; } { # avoid deep sounds plugin = "dj_eq_1901"; label = "dj_eq"; control = [ "-9" # low gain (db) (100Hz) "0" # mid gain (db) (1000Hz) "0" # high gain (db) (10000Hz) ]; } ]; } ]; }; programs.custom = { easytag.enable = true; espeak.enable = true; }; environment.systemPackages = with pkgs; [ audacious sox id3v2 mixxxBin mixxxDesktop mixxxFreeBin mixxxFreeDesktop ]; }