# nixos-config - My current NixOS configuration # # Copyright (C) 2025 Benedikt Peetz # SPDX-License-Identifier: GPL-3.0-or-later # # This file is part of my nixos-config. # # You should have received a copy of the License along with this program. # If not, see . { config, pkgs, libraries, lib, ... }: let cfg = config.soispha.services.mpdpopm; settingsFormat = pkgs.formats.json {}; in { options.soispha.services.mpdpopm = { enable = libraries.base.options.mkEnable "mpdpopm"; settings = lib.mkOption { # Setting this type allows for correct merging behavior inherit (settingsFormat) type; default = {}; description = '' Configuration for foo, see for supported settings. ''; }; }; config = lib.mkIf cfg.enable { soispha.services.mpdpopm.settings = { version = "1"; log = "${config.home-manager.users.soispha.xdg.dataHome}/mpdpopm/log"; conn.Local = { path = config.home-manager.users.soispha.home.sessionVariables.MPD_HOST; }; local_music_dir = config.soispha.services.mpd.directories.music; }; home-manager.users.soispha = { systemd.user.services.mpdpopm = { Unit = { Description = "mpdpopm ratings and playcounts for MPD"; Requires = ["mpd.service"]; After = ["mpd.service"]; }; Service = { Restart = "on-failure"; ExecStart = "${lib.getExe' pkgs.mpdpopm "mpdpopmd"} --config ${settingsFormat.generate "config.json" cfg.settings}"; }; Install = {WantedBy = ["default.target"];}; }; }; }; }