aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/mp
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-01-25 00:46:33 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-01-25 00:46:33 +0100
commit17be85d4155628b7a6a8c3e76641f20a91af4da4 (patch)
treec9b66f7399a7e80cc50db6b16c3534e3fcdc1e75 /modules/by-name/mp
parentpkgs/mpdpopm: Init (diff)
downloadnixos-config-17be85d4155628b7a6a8c3e76641f20a91af4da4.zip
modules/{mpdpopm,legacy/beets}: Move the mpd stat tracking to mpdpopm
It is just easier to use the hand-written rust version, than to try to do this via the beets plugin.
Diffstat (limited to 'modules/by-name/mp')
-rw-r--r--modules/by-name/mp/mpdpopm/module.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/by-name/mp/mpdpopm/module.nix b/modules/by-name/mp/mpdpopm/module.nix
new file mode 100644
index 00000000..3524554c
--- /dev/null
+++ b/modules/by-name/mp/mpdpopm/module.nix
@@ -0,0 +1,65 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# 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 <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{
+ 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
+ <link xlink:href="https://example.com/docs/foo"/>
+ 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"];};
+ };
+ };
+ };
+}