53 lines
1.2 KiB
Nix
53 lines
1.2 KiB
Nix
|
{ pkgs, ... }:
|
||
|
let
|
||
|
mpdConf = pkgs.writeText "mpd.conf" ''
|
||
|
music_directory "~/Music"
|
||
|
playlist_directory "~/.mpd/playlists"
|
||
|
db_file "~/.mpd/tag_cache"
|
||
|
state_file "~/.mpd/state"
|
||
|
sticker_file "~/.mpd/sticker.sql"
|
||
|
|
||
|
bind_to_address "127.0.0.1"
|
||
|
zeroconf_enabled "no"
|
||
|
|
||
|
restore_paused "yes"
|
||
|
replaygain "track"
|
||
|
|
||
|
audio_output {
|
||
|
type "pulse"
|
||
|
name "pulse"
|
||
|
}
|
||
|
|
||
|
audio_output {
|
||
|
type "fifo"
|
||
|
name "fifo"
|
||
|
path "~/.mpd/fifo"
|
||
|
format "44100:16:2"
|
||
|
}
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
imports = [
|
||
|
./pulseaudio.nix
|
||
|
];
|
||
|
|
||
|
systemd.user.services.mpd = {
|
||
|
after = [ "network.target" "sound.target" ];
|
||
|
description = "Music Player Daemon";
|
||
|
|
||
|
wantedBy = [ "default.target" ];
|
||
|
partOf = [ "default.target" ];
|
||
|
|
||
|
serviceConfig = {
|
||
|
ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon ${mpdConf}";
|
||
|
Type = "notify";
|
||
|
ExecStartPre = ''${pkgs.bash}/bin/bash -c "${pkgs.coreutils}/bin/mkdir -p ~/Music ~/.mpd/playlists"'';
|
||
|
};
|
||
|
};
|
||
|
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
mpc_cli
|
||
|
(pkgs.ncmpcpp.override { visualizerSupport = true; taglibSupport = false; })
|
||
|
];
|
||
|
}
|