feat: add classic Winamp theme

This commit is contained in:
Bjarne Øverli
2026-08-18 18:54:24 +02:00
parent 548ed246f3
commit 5a588f5d7d
4 changed files with 34 additions and 3 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
# Themes
cliamp ships with 20 built-in color themes and supports custom themes via simple TOML files.
cliamp ships with 21 built-in color themes and supports custom themes via simple TOML files.
Press `t` during playback to open the theme picker. Navigate with `↑`/`↓`, preview live as you move, confirm with `Enter`, or cancel with `Esc`.
@@ -8,7 +8,7 @@ Your selection is saved automatically and restored on next launch.
## Built-in themes
ayu-mirage-dark, catppuccin, catppuccin-latte, dracula, ember, ethereal, everforest, flexoki-light, gruvbox, hackerman, kanagawa, matte-black, miasma, neon-blade-runner, nord, osaka-jade, ristretto, rose-pine, tokyo-night, vantablack
ayu-mirage-dark, catppuccin, catppuccin-latte, dracula, ember, ethereal, everforest, flexoki-light, gruvbox, hackerman, kanagawa, matte-black, miasma, neon-blade-runner, nord, osaka-jade, ristretto, rose-pine, tokyo-night, vantablack, winamp
## Creating a custom theme
+1 -1
View File
@@ -754,7 +754,7 @@ user_id = "your-account-user-id"</code></pre>
</div>
<div class="features-grid reveal">
<div class="feature"><div class="feature-icon"></div><div class="feature-name">10-Band Equalizer</div><p>Parametric EQ presets plus a persistent Custom curve that survives preset changes and restarts.</p></div>
<div class="feature"><div class="feature-icon"></div><div class="feature-name">Themes &amp; Visualizers</div><p>20 built-in themes and spectrum, waveform, particle, and true-stereo modes. Stereo provides dedicated L/R horizontal LED peak meters. Hot-swap with <kbd>t</kbd> / <kbd>v</kbd>.</p></div>
<div class="feature"><div class="feature-icon"></div><div class="feature-name">Themes &amp; Visualizers</div><p>21 built-in themes and spectrum, waveform, particle, and true-stereo modes. Stereo provides dedicated L/R horizontal LED peak meters. Hot-swap with <kbd>t</kbd> / <kbd>v</kbd>.</p></div>
<div class="feature"><div class="feature-icon"></div><div class="feature-name">Playlists</div><p>TOML playlists with dynamic directory sources (<code>--dir</code>), M3U/M3U8/PLS import/export, duplicate-safe writes, and TUI/CLI sort tools.</p></div>
<div class="feature"><div class="feature-icon"></div><div class="feature-name">Recently Played</div><p>Auto-recorded listening history. Browse it as a virtual playlist or run <code>cliamp history</code> from the shell.</p></div>
<div class="feature"><div class="feature-icon"></div><div class="feature-name">HTTP Streaming</div><p>Play from URLs, internet radio, remote M3U playlists, and HLS (<code>.m3u8</code>) live streams via ffmpeg.</p></div>
+23
View File
@@ -32,6 +32,29 @@ func TestLoadAllIncludesBuiltinThemes(t *testing.T) {
}
}
func TestLoadAllIncludesWinampPalette(t *testing.T) {
t.Setenv("HOME", t.TempDir())
want := Theme{
Name: "winamp",
Accent: "#00FF00",
BrightFG: "#FFFFFF",
FG: "#969696",
Green: "#29CE10",
Yellow: "#D6B521",
Red: "#EF3110",
}
for _, th := range LoadAll() {
if th.Name == want.Name {
if th != want {
t.Errorf("winamp theme = %+v, want %+v", th, want)
}
return
}
}
t.Fatal("built-in themes missing winamp")
}
func TestLoadAllSortedCaseInsensitive(t *testing.T) {
t.Setenv("HOME", t.TempDir())
+8
View File
@@ -0,0 +1,8 @@
# Winamp 2.91 base skin. Text colors come from PLEDIT.TXT and the
# spectrum colors from VISCOLOR.TXT.
accent = "#00FF00"
bright_fg = "#FFFFFF"
fg = "#969696"
green = "#29CE10"
yellow = "#D6B521"
red = "#EF3110"