{ 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 ]; 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 = "White"; header = "White"; }; behavior = { seek_milliseconds = 5000; volume_increment = 10; }; }; }; nixpkgs.allowedUnfree = [ "spotify" "spotify-unwrapped" ]; }; }