[Desktop/Multimedia] fix pipewire-noise-filter (and make it visible in outputs selection)

This commit is contained in:
Antoine Viallon 2024-01-10 21:51:18 +01:00
parent 92b6e28cfe
commit 0524dde7e9
Signed by: aviallon
GPG key ID: 186FC35EDEB25716
2 changed files with 27 additions and 19 deletions

View file

@ -4,7 +4,7 @@ let
cfg = config.aviallon.desktop; cfg = config.aviallon.desktop;
generalCfg = config.aviallon.general; 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; noiseFilterStrength = cfg.audio.noise-filter.strength;
}; };
@ -84,25 +84,33 @@ in {
# Hardware-agnostic audio denoising # Hardware-agnostic audio denoising
systemd.user.services.pipewire-noise-filter = mkIf cfg.audio.noise-filter.enable { systemd.user.services = let
unitConfig = { mkPipewireModule = {conf, description}: {
Slice = "session.slice"; 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 = { in {
ExecStart = [ pipewire-noise-filter = mkIf cfg.audio.noise-filter.enable (
"${pkgs.pipewire}/bin/pipewire -c ${filterConfig}" (mkPipewireModule { conf = filterConfig; description = "Pipewire Noise Filter"; }) //
]; {
Type = "simple"; enable = cfg.audio.noise-filter.strength > 0.0;
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";
}; };
}; };