nix/lib/modules/mpd.nix
2023-12-11 10:06:57 +00:00

47 lines
1.2 KiB
Nix

{ user }: { 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 {
home-manager.users.${user}.imports = [{
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" ];
};
};
};
}];
};
}