diff --git a/modules/services/mpd.nix b/modules/services/mpd.nix new file mode 100644 index 0000000..18bd767 --- /dev/null +++ b/modules/services/mpd.nix @@ -0,0 +1,22 @@ +{ username, config, ... }: +{ + services.mpd = { + enable = true; + musicDirectory = "/dandelion/home/liv/music"; + extraConfig = '' + audio_output { + type "pipewire" + name "pipewire" + } + ''; + user = "${username}"; # PipeWire requires this as it runs as the normal user and mpd normally runs as a system user. + + # Optional: + # network.listenAddress = "any"; # if you want to allow non-localhost connections + network.startWhenNeeded = false; # systemd feature: only start MPD service upon connection to its socket + }; + systemd.services.mpd.environment = { + # see: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/609 + XDG_RUNTIME_DIR = "/run/user/${toString config.users.users.userRunningPipeWire.uid}"; # User-id must match above user. MPD will look inside this directory for the PipeWire socket. + }; +}