[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,13 +84,14 @@ 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
mkPipewireModule = {conf, description}: {
unitConfig = { unitConfig = {
Slice = "session.slice"; Slice = "session.slice";
}; };
serviceConfig = { serviceConfig = {
ExecStart = [ ExecStart = [
"${pkgs.pipewire}/bin/pipewire -c ${filterConfig}" "${pkgs.pipewire}/bin/pipewire -c ${conf}"
]; ];
Type = "simple"; Type = "simple";
Restart = "on-failure"; Restart = "on-failure";
@ -100,9 +101,16 @@ in {
environment = { environment = {
PIPEWIRE_DEBUG = "3"; PIPEWIRE_DEBUG = "3";
}; };
enable = cfg.audio.noise-filter.strength > 0.0;
wantedBy = [ "pipewire.service" ]; wantedBy = [ "pipewire.service" ];
description = "Pipewire Noise Filter"; inherit description;
};
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;
}
);
}; };
}; };