den
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}