about summary refs log tree commit diff stats
path: root/modules/by-name/mp/mpd/mpc.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/mp/mpd/mpc.nix')
-rw-r--r--modules/by-name/mp/mpd/mpc.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/by-name/mp/mpd/mpc.nix b/modules/by-name/mp/mpd/mpc.nix
new file mode 100644
index 00000000..031465fe
--- /dev/null
+++ b/modules/by-name/mp/mpd/mpc.nix
@@ -0,0 +1,37 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}: let
+  cfg = config.soispha.services.mpd.mpc;
+  parentCfg = config.soispha.services.mpd;
+in {
+  options.soispha.services.mpd.mpc = {
+    enable = lib.mkEnableOption "mpc with extensions";
+
+    beetsPkg = lib.mkOption {
+      type = lib.types.package;
+      description = "The package to use, when calling `beet`";
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    home-manager.users.soispha.home.packages = [
+      pkgs.mpp # Wrapper around `mpc` that allows the usage of `mpc-{beetsrm,lyrics,searchadd}` (below) without the `-`
+
+      # Removes the currently playing song from the disk and storage
+      (pkgs.mpp-beetrm.override {
+        beets = cfg.beetsPkg;
+      })
+      # Works like normal `mpc searchadd` but uses the `beets` query syntax
+      (pkgs.mpp-searchadd.override {
+        beets = cfg.beetsPkg;
+      })
+      # Displays the lyrics of the currently playing song
+      (pkgs.mpp-lyrics.override {
+        mpd_music_dir = parentCfg.directories.music;
+      })
+    ];
+  };
+}