diff --git a/modules/audio/default.nix b/modules/audio/default.nix index 5063f48..2fa643d 100644 --- a/modules/audio/default.nix +++ b/modules/audio/default.nix @@ -13,6 +13,17 @@ let }; text = builtins.readFile ./linkSinks.sh; }; + nullSink = name: { + factory = "adapter"; + args = { + "factory.name" = "support.null-audio-sink"; + "node.name" = name; + "node.description" = name; + "media.class" = "Audio/Sink"; + "audio.position" = "FL,FR"; + "monitor.channel-volumes" = true; + }; + }; in { services.pulseaudio.enable = false; @@ -38,50 +49,12 @@ in } ]; - extraConfig.pipewire."91-virtual-sinks" = { - "context.objects" = [ - { - factory = "adapter"; - args = { - "factory.name" = "support.null-audio-sink"; - "node.name" = "game"; - "node.description" = "game"; - "media.class" = "Audio/Sink"; - "audio.position" = "FL,FR"; - }; - } - { - factory = "adapter"; - args = { - "factory.name" = "support.null-audio-sink"; - "node.name" = "clementine"; - "node.description" = "clementine"; - "media.class" = "Audio/Sink"; - "audio.position" = "FL,FR"; - }; - } - { - factory = "adapter"; - args = { - "factory.name" = "support.null-audio-sink"; - "node.name" = "element"; - "node.description" = "element"; - "media.class" = "Audio/Sink"; - "audio.position" = "FL,FR"; - }; - } - { - factory = "adapter"; - args = { - "factory.name" = "support.null-audio-sink"; - "node.name" = "combine"; - "node.description" = "combine"; - "media.class" = "Audio/Sink"; - "audio.position" = "FL,FR"; - }; - } - ]; - }; + extraConfig.pipewire."91-virtual-sinks"."context.objects" = [ + (nullSink "game") + (nullSink "clementine") + (nullSink "element") + (nullSink "combine") + ]; wireplumber.extraConfig."91-default-sink" = { "wireplumber.settings" = { @@ -112,6 +85,7 @@ in }; }; + # TODO: switch to home manager # home-manager.users.djai.home.packages = with pkgs; [ # pavucontrol # qpwgraph