43 lines
1.1 KiB
Nix
43 lines
1.1 KiB
Nix
|
# Sources for this configuration:
|
||
|
# - https://github.com/librespot-org/librespot
|
||
|
# - https://github.com/librespot-org/librespot/wiki/Options
|
||
|
# - https://github.com/librespot-org/librespot/wiki/Audio-Backends
|
||
|
|
||
|
{ config, pkgs, lib, ... }:
|
||
|
|
||
|
with lib;
|
||
|
|
||
|
let
|
||
|
|
||
|
cfg = config.ccchh.services.audio;
|
||
|
|
||
|
in
|
||
|
|
||
|
{
|
||
|
config = mkIf cfg.enable {
|
||
|
systemd.services.spotify-connect-receiver = {
|
||
|
enable = true;
|
||
|
description = "Spotify Connect Receiver Using librespot";
|
||
|
unitConfig = {
|
||
|
Requires = [ "network-online.target" "pipewire.service" ];
|
||
|
After = [ "network-online.target" "pipewire.service" ];
|
||
|
};
|
||
|
serviceConfig = {
|
||
|
ExecStart = "${pkgs.librespot}/bin/librespot --name '${config.ccchh.services.audio.name}' --device-type speaker --bitrate 320 --enable-volume-normalisation --disable-audio-cache --disable-credential-cache --quiet";
|
||
|
User = "librespot";
|
||
|
Group = "librespot";
|
||
|
};
|
||
|
wantedBy = [ "multi-user.target" ];
|
||
|
};
|
||
|
|
||
|
users = {
|
||
|
users.librespot = {
|
||
|
isSystemUser = true;
|
||
|
group = "librespot";
|
||
|
extraGroups = [ "pipewire" ];
|
||
|
};
|
||
|
groups.librespot = { };
|
||
|
};
|
||
|
};
|
||
|
}
|