-
Notifications
You must be signed in to change notification settings - Fork 0
/
spotify.nix
82 lines (74 loc) · 2.18 KB
/
spotify.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{ config, pkgs, lib, spicetify-nix, secrets, ... }:
let
spicePkgs = spicetify-nix.legacyPackages.${pkgs.system};
in
{
# allow spotify to be installed if you don't have unfree enabled already
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"spotify"
];
# import the flake's module for your system
imports = [ spicetify-nix.homeManagerModules.default ];
# configure spicetify :)
programs.spicetify =
{
enable = true;
theme = spicePkgs.themes.default;
colorScheme = "custom";
# https://github.com/spicetify/spicetify-themes/blob/3231c5e4d1a5f2dbae7aec65291364f863eaf9e0/Sleek/color.ini#L323
customColorScheme = with config.lib.stylix.scheme; {
text = cyan;
subtext = base05;
nav-active-text = base06;
sidebar-text = cyan;
main = base00;
sidebar = base01;
player = base02;
card = base02;
tab-active = base03;
shadow = base0D;
button = blue;
button-active = base07;
button-disabled = brown;
button-secondary = blue;
notification = brown;
notification-error = red;
playback-bar = cyan;
misc = brown;
};
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle # shuffle+ (special characters are sanitized out of ext names)
hidePodcasts
fullAlbumDate
wikify
history
playlistIcons
];
enabledCustomApps = with spicePkgs.apps; [
newReleases
marketplace
historyInSidebar
];
};
programs.spotify-player = {
enable = true;
settings = {
client_id = "478557dfc9ab451f8d97ee4070634865";
client_port = 8088;
};
};
services.spotifyd = {
enable = false; # wait for build to be fixed
settings = {
global = {
username = "2pxqknxvfuz2yuigiqd4wazlt";
use_mpris = true; # global controls
device_name = "spotifyd_surfacenene";
device_type = "computer";
} // (if secrets ? spotify
then { password_cmd = "cat ${secrets.spotify.path}"; }
else { password = "placeholder"; });
};
};
}