104 lines
2.1 KiB
Nix
104 lines
2.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
|
|
with pkgs;
|
|
|
|
let
|
|
# HACK Replace youtube-dl with yt-dlp in mopidy-youtube
|
|
mopidy-youtube-yt_dlp = mopidy-youtube.overrideAttrs (old: rec {
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
python3.pkgs.yt-dlp
|
|
python3.pkgs.ytmusicapi
|
|
];
|
|
});
|
|
soundcloud_token = builtins.readFile ../secrets/soundcloud_token;
|
|
|
|
in
|
|
{
|
|
# Configure pipewire as sound server
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa = {
|
|
enable = true;
|
|
support32Bit = true;
|
|
};
|
|
pulse.enable = true;
|
|
wireplumber.enable = true;
|
|
# Enable pipewire-pulse's audio via TCP
|
|
extraConfig.pipewire-pulse.tcp-server = {
|
|
"pulse.properties" = {
|
|
"server.address" = [
|
|
"unix:native"
|
|
"tcp:127.0.0.1:4713"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
security.rtkit.enable = true;
|
|
|
|
# Set up Mopidy
|
|
services.mopidy = {
|
|
enable = true;
|
|
extensionPackages = [
|
|
mopidy-mpd
|
|
mopidy-local
|
|
mopidy-youtube-yt_dlp
|
|
mopidy-bandcamp
|
|
mopidy-somafm
|
|
mopidy-soundcloud
|
|
];
|
|
settings = {
|
|
audio.output = "pulsesink server=127.0.0.1";
|
|
|
|
local = {
|
|
media_dir = "/home/coolneng/Music";
|
|
directories = ''
|
|
Album Artists local:directory?type=artist&role=albumartist
|
|
Albums local:directory?type=album
|
|
Artists local:directory?type=artist
|
|
Genres local:directory?type=genre
|
|
'';
|
|
excluded_file_extensions = ''
|
|
.directory
|
|
.html
|
|
.jpeg
|
|
.jpg
|
|
.log
|
|
.nfo
|
|
.png
|
|
.txt
|
|
'';
|
|
scan_timeout = 3000;
|
|
};
|
|
|
|
mpd.zeroconf = "";
|
|
|
|
m3u = {
|
|
playlists_dir = "/home/coolneng/.config/mpd/playlists";
|
|
base_dir = "/home/coolneng/Music";
|
|
};
|
|
|
|
youtube = {
|
|
search_results = 50;
|
|
youtube_dl_package = "yt_dlp";
|
|
musicapi_enabled = true;
|
|
};
|
|
|
|
somafm = {
|
|
encoding = "aac";
|
|
quality = "highest";
|
|
};
|
|
|
|
soundcloud = {
|
|
auth_token = soundcloud_token;
|
|
explore_songs = 100;
|
|
};
|
|
};
|
|
};
|
|
}
|