nix/home/modules/mpd.nix

65 lines
1.3 KiB
Nix

{
lib,
pkgs,
config,
...
}:
with lib; let
cfg = config.roles.mpd;
in {
options.roles.mpd = {
enable = mkEnableOption "setup mpd client";
host = mkOption {default = "192.168.1.2";};
};
config = mkIf cfg.enable {
programs.ncmpcpp = {
enable = true;
settings.mpd_host = cfg.host;
bindings = [
{
key = "j";
command = "scroll_down";
}
{
key = "k";
command = "scroll_up";
}
{
key = "l";
command = "next_column";
}
{
key = "h";
command = "previous_column";
}
{
key = "J";
command = ["select_item" "scroll_down"];
}
{
key = "K";
command = ["select_item" "scroll_up"];
}
];
};
services.mpd-mpris = {
enable = true;
mpd.host = cfg.host;
};
programs.waybar.settings.mainBar.mpd.server = cfg.host;
systemd.user.services = {
snapclient = {
Unit = {
Description = "Snapclient";
};
Service = {
ExecStart = "${pkgs.snapcast}/bin/snapclient -h ${cfg.host}";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
};
};
}