added stuff

This commit is contained in:
vali 2024-04-09 23:11:33 +02:00
commit 7d4f626b7d
907 changed files with 70990 additions and 0 deletions

View file

@ -0,0 +1,111 @@
{
osConfig,
config,
pkgs,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (osConfig) modules;
env = modules.usrEnv;
srv = env.services;
in {
config = mkIf srv.media.mpd.enable {
home.packages = with pkgs; [
playerctl # CLI interface for playerctld
mpc_cli # CLI interface for mpd
cava # CLI music visualizer (cavalier is a gui alternative)
];
services = {
playerctld.enable = true;
mpris-proxy.enable = true;
mpd-mpris.enable = true;
# music player daemon service
mpd = {
enable = true;
musicDirectory = "${config.home.homeDirectory}/Media/Music";
network = {
startWhenNeeded = true;
listenAddress = "127.0.0.1";
port = 6600;
};
extraConfig = ''
auto_update "yes"
volume_normalization "yes"
restore_paused "yes"
filesystem_charset "UTF-8"
audio_output {
type "pipewire"
name "PipeWire"
}
audio_output {
type "fifo"
name "Visualiser"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
audio_output {
type "httpd"
name "lossless"
encoder "flac"
port "8000"
max_clients "8"
mixer_type "software"
format "44100:16:2"
}
'';
};
# MPRIS 2 support to mpd
mpdris2 = {
enable = true;
notifications = true;
multimediaKeys = true;
mpd = {
# for some reason config.xdg.userDirs.music is not a "path" - possibly because it has $HOME in its name?
inherit (config.services.mpd) musicDirectory;
};
};
# discord rich presence for mpd
mpd-discord-rpc = {
enable = true;
settings = {
format = {
details = "$title";
state = "On $album by $artist";
large_text = "$album";
small_image = "";
};
};
};
};
programs = {
/*
# yams service
# TODO: figure out a way to provide the lastfm authentication declaratively
systemd.user.services.yams = {
Unit = {
Description = "Last.FM scrobbler for MPD";
After = ["mpd.service"];
};
Service = {
ExecStart = "${pkgs.yams}/bin/yams -N";
Environment = "NON_INTERACTIVE=1";
Restart = "always";
};
Install.WantedBy = ["default.target"];
};
*/
};
};
}