feat: add classic Winamp theme
This commit is contained in:
+2
-2
@@ -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
@@ -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 & 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 & 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>
|
||||
|
||||
@@ -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())
|
||||
|
||||
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user