Like Winamp but on your Omarchy desktop.
It really whips the llama's ass — pixel for pixel.
A mini music player in the bar — now playing, transport, volume — and a full-size player you can customize yourself. The real Winamp 2.x window on your desktop, wearing any of the 102,000
classic skins in the Winamp Skin
Museum: live spectrum, docked playlist, the works — playing your actual
music over MPRIS, with cliamp
as its headless engine. And themes flow both
ways: any skin becomes a cliamp theme or a full Omarchy desktop theme, and
your Omarchy theme dresses the player right back.
Three classics — base-2.91, Winamp5 Classified, Zelda Amp III — live spectrum
running, each with the docked playlist wearing that skin's own pledit.bmp
chrome.
The flat TUI face: the same player drawn from your Omarchy theme's colors —
it recolors on every omarchy theme set, live spectrum and docked playlist
included.
-
The player — the Winamp 2.x main window as a real desktop app, rendered sprite-accurately from any museum skin: LCD digits, bitmap-font marquee, seek and volume sliders, shuffle/repeat, and a spectrum analyzer colored by the skin's own
viscolor.txt. Hit PL and the playlist unfolds beneath it in the skin'spledit.bmpchrome, exactly like the original's snapped-on playlist — pick a stream, load a TOML playlist, or paste any file path / stream URL. -
The bar dropdown — a native Omarchy panel, the same shape as Wi-Fi and Agents, that opens on a mini music player: now-playing, transport, and volume for whatever is on the bus. The other tabs browse the museum's curated top 200 offline (or search all 102k live, as the museum's own screenshots), tune colors, and pick themes — one click dresses the player and writes a matching cliamp terminal theme.
-
The theme maker — turn any skin into a complete Omarchy theme (
colors.toml+ a rendered wallpaper), which Omarchy's template engine fans out to your terminal, editor, browser and bar. One Winamp skin themes the whole desktop. -
cliamp integration — OmaAmp is an MPRIS client (cliamp-first, but it drives Spotify, Chromium or mpv too). Opening the player starts a headless
cliamp -dengine when nothing is running, and closing it stops the engine it started — closing Winamp stopped the music. A shippedcliamp.toml.tpl+ theme-set hook also makes cliamp follow every Omarchy theme switch, like the rest of the themed apps.
The bar widget installs like any Omarchy plugin:
omarchy plugin add https://github.com/jonnyace/omaamp.git
omarchy plugin enable io.github.jonnyace.omaampThe desktop app is opt-in, from the plugin checkout:
cd ~/.config/omarchy/plugins/io.github.jonnyace.omaamp
./install.sh # `omaamp` on PATH, a launcher tile, Hyprland rules,
# the cliamp theme template + hookinstall.sh appends one clearly marked, backed-up rule block to
~/.config/hypr/hyprland.lua; ./install.sh --uninstall removes everything
it added. Skins download on demand and cache under ~/.cache/omaamp/;
museum entries flagged NSFW are filtered from browse and search.
-
Bar icon: left-click opens the skin browser, middle-click launches or focuses the player.
-
Browser panel: Browse is the museum's own top ranking (cached, offline); typing searches everything. Clicking a skin re-dresses a running player live. If opening a skin from the museum does not hand off to OmaAmp, paste its
skins.webamp.org/skin/…link into the fallback field. Tune edits the seven derived cliamp colors — live, when the player wears the TUI face — and holds the Make Omarchy theme / Apply to desktop buttons. It also switches the player between its adaptive enlarged scale and the original 275×116 one-physical-pixel-per-skin-pixel size. My themes lists installed cliamp themes; picking one dresses the TUI player and cliamp together. -
Player: opens as its own tile (never hovering over your windows), scales in whole-pixel steps up to Winamp's classic double-size, floats when you toggle it. The letterbox is transparent — wallpaper shows through around the artwork.
-
Following your Omarchy theme: museum skins are bitmap art — they keep their own colors and do not recolor when you switch Omarchy themes. Two ways to get a player that matches your desktop:
- My themes tab: pick any cliamp theme and the player wears the flat TUI face — the same layout drawn from the theme's seven colors, deliberately close to cliamp's own look. Because it is color-driven, the Tune tab recolors it live, and it is the default face for themes.
- Sync to Omarchy theme: generates a synthetic bitmap skin — the
classic Winamp art recolored through your live palette — rebuilt by the
theme-set hook on every
omarchy theme setwhile worn.
Pick any museum skin in Browse to go back to fixed bitmap art.
omaamp # launch, or focus the running instance
omaamp --skin <id-or-link> # wear a skin by md5 or a copied museum link
omaamp --zoom 3 # bigger pixels
omaamp --no-engine # don't start a cliamp daemon
omaamp --quitRendering. A .wsz is a ZIP of sprite sheets cut to fixed offsets
(main.bmp 275×116, cbuttons.bmp 136×36, text.bmp 155×18 …). Those
offsets are not ours to choose — every skin ever made was cut against them —
so player/sprites.js encodes the classic spec and nothing else. Surveying
280 skins (~1,900 sheets), Qt decodes 99.6% natively; 15.7% ship
nums_ex.bmp instead of numbers.bmp, which shifts every digit one cell.
Why the player is its own process. It would be less code as an omarchy-shell plugin, but plugins run unsandboxed inside the single process that owns the bar, notifications and lock screen — and this program's job is decoding bitmaps from arbitrary archives, ~0.4% of which have corrupt headers. As an app, a decoder fault closes a music player. Measured marginal cost: ~117 MB PSS (most of Qt is already resident for the shell).
Theme conversion. Winamp drew its colors over its own artwork; a
terminal draws them on a flat background, so a literal port leaves a large
share of the museum unreadable. The converter (cliamp_skinner/) works in
OKLab: backgrounds get lightness headroom while keeping their hue, monochrome
visualizer ramps are re-laid across a contrast-safe band, fade-to-black steps
borrow the ramp's hue instead of surfacing grey, and polychrome ramps —
including Winamp's own red/yellow/green — are left alone, because their
non-monotonic lightness is the look. On 200 randomly sampled skins the
result is 98.5% clean; the residual is two-color skins where "collapsed" is
the honest answer. python3 -m unittest discover -s tools runs the
regression suite; tools/bench.py re-runs the corpus harness.
player/ the app (self-contained Quickshell config)
BarWidget.qml
Panel.qml the bar plugin
bin/omaamp launcher: engine lifecycle, launch-or-focus
bin/skinner JSON bridge: museum, conversion, playback, themes
cliamp_skinner/ the OKLab conversion engine (stdlib-only Python)
install.sh desktop-app install / uninstall
assets/ cliamp theme template + theme-set hook
tools/ dev tooling: corpus bench, CLI converter, tests
MIT.


