From 7a4c8d189979929feb3059de775b7b955d00096d Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Tue, 28 Jul 2026 06:19:16 -0500 Subject: [PATCH] easyeffects: handle null extra presets The option type permits null, but preset generation attempted to map it as an attribute set. Treat null like an empty preset set so users can disable imported presets without evaluation failure. --- modules/services/easyeffects.nix | 2 +- tests/modules/services/easyeffects/default.nix | 1 + tests/modules/services/easyeffects/null-presets.nix | 13 +++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/modules/services/easyeffects/null-presets.nix diff --git a/modules/services/easyeffects.nix b/modules/services/easyeffects.nix index ca15217cc1e5..92f206f3b524 100644 --- a/modules/services/easyeffects.nix +++ b/modules/services/easyeffects.nix @@ -101,7 +101,7 @@ in home.packages = with pkgs; lib.optional olderThan8 at-spi2-core ++ [ cfg.package ]; # Only include if easyeffects version is below 8.0.0 - xdg.dataFile = lib.mkIf (cfg.extraPresets != { }) ( + xdg.dataFile = lib.mkIf (cfg.extraPresets != null && cfg.extraPresets != { }) ( lib.mapAttrs' ( k: v: # Assuming only one of either input or output block is defined, having both in same file not seem to be supported by the application since it separates it by folder diff --git a/tests/modules/services/easyeffects/default.nix b/tests/modules/services/easyeffects/default.nix index 882b5aa48d97..a82a2000e6e7 100644 --- a/tests/modules/services/easyeffects/default.nix +++ b/tests/modules/services/easyeffects/default.nix @@ -3,4 +3,5 @@ lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux { easyeffects-service = ./service.nix; easyeffects-example-preset = ./example-preset.nix; + easyeffects-null-presets = ./null-presets.nix; } diff --git a/tests/modules/services/easyeffects/null-presets.nix b/tests/modules/services/easyeffects/null-presets.nix new file mode 100644 index 000000000000..b1026601420b --- /dev/null +++ b/tests/modules/services/easyeffects/null-presets.nix @@ -0,0 +1,13 @@ +{ + services.easyeffects = { + enable = true; + extraPresets = null; + }; + + test.stubs.easyeffects = { }; + + nmt.script = '' + assertPathNotExists home-files/.local/share/easyeffects/input + assertPathNotExists home-files/.local/share/easyeffects/output + ''; +}