{ 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; }) ]; }; }