Hello everyone, I am proud to announce the release of TerminalDrome 0.9.5 with some major changes to everything. Space acts now as pause and not as stop and the ASCII Covers now renders as a block so it should look better now.
A lot of bugfixes and minor improvements so 0.9.5 should be really stable, more about all the improvements here.
TerminalDrome now also features on AwesomeTUI.com, a curated List of beautiful TUI Terminal Programms like TerminalDrome is.
Getting Started with TerminalDrome
I wrote a “Getting Started with TerminalDrome: A First-Time Users Guide” (Link) on how to configure TerminalDrome and how it works.
Features
New in 0.9.5
-
🖼️ Cover art you can recognise — the character ramp was not monotonic: ink rose to
@and then fell off again, which rendered near-white artwork almost blank and made ordinary covers look noisy. Both ramps now run monotonically from empty to solid, so brighter pixels always carry more ink. The renderer is also selectable now:blocks— five tonal steps, keeps the gradation (default)ascii— ten tonal steps, pure ASCIIhalfblock— two pixels per cell, sharper edges, but binary per sub-pixel
All three modes occupy the same grid, so switching never moves the layout. Set
asciiif your terminal font has no block glyphs:TERMINALDROME_COVER=ascii terminaldrome -
ℹ️
terminaldrome --about— a longer description of the project, what it is aimed at, who wrote it and under which license it is released. It works before anything is configured, so it will not start the setup wizard. -
⏸️ Pause / resume with
Space—Spacenow pauses and resumes, the same binding mpv itself uses, instead of stopping playback outright. Playback continues from the exact position and the track does not change. Stopping for good moved tox. A⏸ pausedindicator shows in the status bar. -
🐛
Spaceno longer throws you out of the playlist — it used to force the view back to Artists, so pausing in a playlist and pressingEnterdropped you out of the list entirely. Stopping the playback kept your place too; only leaving Jukebox mode still returns to Artists. -
🎵 Correct track titles in mpv again — Bandcamp streams ship without ID3 tags, so mpv had nothing to display and fell back to the raw stream URL (
https://bandcamp.com/api/subsonic/stream?id=…) in the window title. Every track is now handed to mpv with an explicitArtist - Title, so the window title and any OSC/media display show the song again. Tracks whose server metadata has no title keep mpv’s own fallback. -
🩺 Bandcamp failures are no longer silent — Bandcamp’s Subsonic implementation is an open beta and answers endpoints it does not support with HTTP 200 and an empty body. That used to be indistinguishable from “this account has no albums”. TerminalDrome now validates the HTTP status and the Subsonic response envelope on every call, so a rejected request is reported as an error instead of an empty list. A failure now always tells you whether the server refused the call or genuinely returned nothing.
-
🩺 Bandcamp connection check at startup — if the Bandcamp credentials are rejected, you get a warning right after the splash screen instead of wondering why the library is empty.
-
🔌 Hardened source switching — a
[bandcamp]block that is not actually configured is no longer offered as a source, and a saved-but-broken Bandcamp block falls back to Navidrome at startup instead of dropping you into an empty view. The footer hint only advertises sources that work. -
🔑 Optional
passwordinconfig.toml— instead of a fixedtoken/saltpair you can store the password and let TerminalDrome mint a freshly salted token per request. That is the better option, because a stored token never rotates. -
📣 Failed actions are visible — playlist edits, likes and scrobbles report failures in the status bar and log instead of failing silently.
-
🧹 Cleanups — removed a dead
credentialsmodule and a stalemain.rs.bak; the version in the splash screen and inbuild.shis now read fromCargo.tomland can no longer go stale.