{ config, pkgs, lib, osConfig, ... }: let dataDir = "${config.xdg.dataHome}/mpd"; playlistDirectory = "${dataDir}/playlists"; runtimeDir = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd"; in { home.sessionVariables = { MPD_HOST = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd/socket"; }; systemd.user.services.mpd.Service.ExecStartPre = lib.mkForce '' ${pkgs.coreutils}/bin/mkdir --parents "${dataDir}" "${playlistDirectory}" "${runtimeDir}" ''; services.mpd = { enable = true; inherit dataDir playlistDirectory; musicDirectory = config.programs.beets.settings.directory; network = { listenAddress = "${runtimeDir}/socket"; }; extraConfig = '' metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc,comment" # Updated by the beets `mpdupdate` plugin auto_update "no" audio_output { type "pipewire" name "pipewire" } replaygain "track" replaygain_limit "yes" #database { # plugin "simple" # path "~/.local/share/mpd/db # cache_directory "~/.local/share/mpd/cache" #} filesystem_charset "UTF-8" ''; }; }