{ config, lib, ... }: let cfg = config.myOptions.services.mpd; inherit (config.myOptions.other.system) username; inherit (lib) mkEnableOption mkIf mkOption; inherit (lib.types) str; in { options.myOptions.services.mpd = { enable = mkEnableOption "mpd"; musicDirectory = mkOption { description = "music directory for mpd"; type = str; }; }; config = mkIf cfg.enable { home-manager.users.${username} = { services = { mpd = { enable = true; inherit (cfg) musicDirectory; extraConfig = '' audio_output { type "pipewire" name "PipeWire Sound Server" } follow_outside_symlinks "yes" follow_inside_symlinks "yes" ''; }; mpd-mpris = { enable = true; mpd = { host = "127.0.0.1"; network = "unix"; port = 6600; useLocal = true; }; }; playerctld = { enable = true; }; }; }; }; }