current
 1{lib, ...}: {
 2  flake.modules.homeManager.desktop = {config, ...}: {
 3    services.mpd = {
 4      enable = true;
 5      network.startWhenNeeded = true;
 6      extraConfig = ''
 7        audio_output {
 8          type "pipewire"
 9          name "PipeWire Sound Server"
10        }
11      '';
12    };
13
14    services.mpd-mpris = {
15      enable = true;
16    };
17
18    # Fix MPD not following `startWhenNeeded` configuration.
19    systemd.user.services.mpd-mpris = let
20      cfg = config.services.mpd-mpris;
21      mpdCfg = config.services.mpd;
22    in
23      lib.mkIf (cfg.mpd.useLocal && mpdCfg.enable && mpdCfg.network.startWhenNeeded) {
24        Install.WantedBy = lib.mkForce ["mpd.service"];
25        Unit = {
26          Requires = lib.mkForce [];
27          BindsTo = ["mpd.service"];
28        };
29      };
30  };
31}