{ pkgs, ... }: { # Put all sinks in pipewire group services.pipewire.systemWide = true; services.avahi = { enable = true; nssmdns4 = true; publish = { enable = true; domain = true; addresses = true; }; }; services.snapserver = { enable = true; streams = { default = { type = "file"; location = "/var/lib/snapserver/test.wav"; sampleFormat = "44100:16:2"; codec = "flac"; }; }; }; systemd.services.snapclient = { wantedBy = [ "multi-user.target" ]; after = [ "pipewire.service" ]; requires = [ "pipewire.service" ]; description = "Snapcast client"; serviceConfig = { ExecStart = "${pkgs.snapcast}/bin/snapclient -h 127.0.0.1 --player pulse --mixer hardware"; DynamicUser = true; SupplementaryGroups = [ "pipewire" ]; }; }; }