81 lines
3 KiB
Nix
81 lines
3 KiB
Nix
{ config
|
|
, lib
|
|
, pkgs
|
|
, ...
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.my.programs.spotify;
|
|
in
|
|
{
|
|
options.my.programs.spotify.enable = mkEnableOption "spotify";
|
|
|
|
config = mkIf cfg.enable {
|
|
age.secrets.spotifyd = {
|
|
file = ../../secrets/spotifyd.age;
|
|
owner = "1000";
|
|
};
|
|
environment.systemPackages = with pkgs; [ spotify-tui sptlrx ];
|
|
home-manager.users.moritz = {
|
|
services.spotifyd = {
|
|
enable = true;
|
|
package = pkgs.spotifyd.override { withMpris = true; };
|
|
settings = {
|
|
global = {
|
|
# A command that gets executed and can be used to
|
|
# retrieve your username.
|
|
username_cmd = "${pkgs.coreutils}/bin/head -n 1 /run/agenix/spotifyd";
|
|
|
|
# A command that gets executed and can be used to
|
|
# retrieve your password.
|
|
password_cmd = "${pkgs.coreutils}/bin/tail -n 1 /run/agenix/spotifyd";
|
|
|
|
# The name that gets displayed under the connect tab on
|
|
# official clients. Spaces are not allowed!
|
|
device_name = "spotifyd";
|
|
|
|
# The audio bitrate. 96, 160 or 320 kbit/s
|
|
bitrate = 320;
|
|
|
|
# Volume on startup between 0 and 100
|
|
initial_volume = "71";
|
|
|
|
# The directory used to cache audio data.
|
|
cache_path = "/tmp/spotifyd-cache";
|
|
|
|
# The displayed device type in Spotify clients.
|
|
device_type = "computer";
|
|
|
|
# set backend to pulseaudio
|
|
backend = "pulseaudio";
|
|
};
|
|
};
|
|
};
|
|
xdg.configFile."spotify-tui/config.yml".text = ''
|
|
# Dracula theme
|
|
theme:
|
|
active: "139,233,253" # current playing song in list
|
|
banner: "80,250,123" # the "spotify-tui" banner on launch
|
|
error_border: "241,250,140" # error dialog border
|
|
error_text: "248,248,242" # error message text (e.g. "Spotify API
|
|
# reported error 404")
|
|
hint: "241,250,140" # hint text in errors
|
|
hovered: "255,184,108" # hovered pane border
|
|
inactive: "248,248,242" # borders of inactive panes
|
|
playbar_background: "68,71,90" # background of progress bar
|
|
playbar_progress: "248,248,242" # filled-in part of the progress bar
|
|
playbar_progress_text: "248,248,242" # song length and time played/left
|
|
# indicator in the progress bar
|
|
playbar_text: "248,248,242" # artist name in player pane
|
|
selected: "80,250,123" # a) selected pane border, b) hovered item
|
|
# in list, & c) track title in player
|
|
text: "248,248,242" # text in panes
|
|
header: "248,248,242" # header text in panes (e.g. 'Title',
|
|
# 'Artist', etc.)
|
|
behavior:
|
|
volume_increment: 5
|
|
'';
|
|
};
|
|
};
|
|
}
|