about summary refs log tree commit diff
path: root/home/profiles/multimedia/default.nix
blob: ccfc8aa4518728369636a079f0276ca4788f559c (plain)
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
{ config, lib, pkgs, ... }:
let cfg = config.profiles.multimedia;
in
{
  imports = [
    ../../modules/programs/nixpkgs
    ../../modules/programs/spotify-tui
  ];

  options.profiles.multimedia = {
    enable = lib.mkEnableOption
      "A profile that enables the system to be used for consuming multimedia contents.";
  };

  config = lib.mkIf cfg.enable {
    home.packages = with pkgs; [ playerctl nuclear ];

    services.spotifyd = {
      enable = true;

      package = (pkgs.spotifyd.override { withMpris = true; });

      settings = {
        global = {
          username = "9nko3f7puya1e5bbo9c5ifddy";
          password_cmd = "cat /run/secrets/spotify-password"; # DISCLAIMER: this expects the `spotify` secret to be present (sops-nix)
        };
      };
    };

    programs.spotify-tui = {
      enable = true;

      settings = {
        theme = {
          active = "Blue";
          banner = "LightBlue";
          hovered = "LightBlue";
          inactive = "Blue";
          playbar_background = "Blue";
          playbar_progress = "LightBlue";
          playbar_progress_text = "Black";
          playbar_text = "Blue";
          selected = "LightBlue";
          text = "203, 192, 171"; # Wrong color mappings on white
          header = "203, 191, 171";
        };

        behavior = {
          seek_milliseconds = 5000;
          volume_increment = 10;
        };
      };
    };

    nixpkgs.allowedUnfree = [ "spotify" "spotify-unwrapped" ];
  };
}