From 0524dde7e9d65e8d0f154bf6e5d6edc0ca40f98c Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Wed, 10 Jan 2024 21:51:18 +0100 Subject: [PATCH] [Desktop/Multimedia] fix pipewire-noise-filter (and make it visible in outputs selection) --- desktop/multimedia.nix | 46 +++++++++++-------- .../pipewire-noise-filter.conf.nix} | 0 2 files changed, 27 insertions(+), 19 deletions(-) rename desktop/{pipewire-noise-filter.cfg.nix => pipewire/pipewire-noise-filter.conf.nix} (100%) diff --git a/desktop/multimedia.nix b/desktop/multimedia.nix index 25d4567..d0595bd 100644 --- a/desktop/multimedia.nix +++ b/desktop/multimedia.nix @@ -4,7 +4,7 @@ let cfg = config.aviallon.desktop; generalCfg = config.aviallon.general; - filterConfig = pkgs.callPackage ./pipewire-noise-filter.cfg.nix { + filterConfig = pkgs.callPackage ./pipewire/pipewire-noise-filter.conf.nix { noiseFilterStrength = cfg.audio.noise-filter.strength; }; @@ -84,25 +84,33 @@ in { # Hardware-agnostic audio denoising - systemd.user.services.pipewire-noise-filter = mkIf cfg.audio.noise-filter.enable { - unitConfig = { - Slice = "session.slice"; + systemd.user.services = let + mkPipewireModule = {conf, description}: { + unitConfig = { + Slice = "session.slice"; + }; + serviceConfig = { + ExecStart = [ + "${pkgs.pipewire}/bin/pipewire -c ${conf}" + ]; + Type = "simple"; + Restart = "on-failure"; + }; + bindsTo = [ "pipewire.service" ]; + after = [ "pipewire.service" ]; + environment = { + PIPEWIRE_DEBUG = "3"; + }; + wantedBy = [ "pipewire.service" ]; + inherit description; }; - serviceConfig = { - ExecStart = [ - "${pkgs.pipewire}/bin/pipewire -c ${filterConfig}" - ]; - Type = "simple"; - Restart = "on-failure"; - }; - bindsTo = [ "pipewire.service" ]; - after = [ "pipewire.service" ]; - environment = { - PIPEWIRE_DEBUG = "3"; - }; - enable = cfg.audio.noise-filter.strength > 0.0; - wantedBy = [ "pipewire.service" ]; - description = "Pipewire Noise Filter"; + in { + pipewire-noise-filter = mkIf cfg.audio.noise-filter.enable ( + (mkPipewireModule { conf = filterConfig; description = "Pipewire Noise Filter"; }) // + { + enable = cfg.audio.noise-filter.strength > 0.0; + } + ); }; }; diff --git a/desktop/pipewire-noise-filter.cfg.nix b/desktop/pipewire/pipewire-noise-filter.conf.nix similarity index 100% rename from desktop/pipewire-noise-filter.cfg.nix rename to desktop/pipewire/pipewire-noise-filter.conf.nix