47 lines
1.2 KiB
Nix
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" ];
|
|
};
|
|
};
|
|
};
|
|
}];
|
|
};
|
|
|
|
}
|