{ config, lib, pkgs, ... }: with lib; let cfg = config.programs.spotify-tui; yamlFormat = pkgs.formats.yaml { }; in { meta.maintainers = with lib.maintainers; [ boppyt ]; options.programs.spotify-tui = { enable = mkEnableOption "A Spotify client for the terminal written in Rust."; package = mkOption { type = types.package; default = pkgs.spotify-tui; defaultText = literalExpression "pkgs.spotify-tui"; description = "The spotify-tui package to install"; }; settings = mkOption { type = yamlFormat.type; default = { }; description = '' Configuration written to $XDG_CONFIG_HOME/spotify-tui/config.yml. See for a list of available options. ''; example = literalExpression '' { theme = { active = "Cyan"; banner = "LightCyan"; }; behavior = { seek_milliseconds = 5000; volume_increment = 10; }; } ''; }; }; config = mkIf cfg.enable { home.packages = [ cfg.package ]; xdg.configFile."spotify-tui/config.yml" = mkIf (cfg.settings != { }) { source = yamlFormat.generate "spotify-tui-config" cfg.settings; }; }; }