Skip to content

tidalamp 0.2.0

Choose a tag to compare

@wh01s17 wh01s17 released this 10 Sep 04:34
· 126 commits to main since this release

A browsing and windows release: filter the library without leaving it, and windows that
take the screen there is instead of a fixed box. Playback is unchanged.

Added

  • A filter inside the browser, on /. It opens a bar at the foot of the window, the
    way a web browser's find does: it does not cover the level, it narrows it underneath
    as you type, and it says how many rows are left of how many. It filters whatever the
    level holds — tracks in your favourites, playlists in My playlists, albums, artists,
    or a category of search results — ignores case and accents (sinfonia finds
    Sinfonía), requires every word you type to appear somewhere, and also looks in the
    track's album, which is not on the line unless you turned that column on. applies
    the filter and gives the arrows back to the list; Esc clears it and leaves the
    browser on the row you had reached. The more… row is never filtered out: a level is
    one page deep until somebody asks for the rest, and hiding the only way to ask would
    turn the filter into a lie about 766 favourites.
  • A black palette: black ground and everything else in greys and whites. It is the
    first monochrome one, so errors, warnings, playable tracks and container rows are told
    apart by how much light they carry, which is the only axis left.
  • A transparency setting, off by default, in the o screen, in the config file and
    as TIDALAMP_TRANSPARENCY.

Changed

  • The windows that open over the player take the screen there is. They were a fixed
    84x26, so on a 4K display they sat like a stamp in the middle of an empty field. The
    library, the lyrics and the help now take 85% of the terminal, capped at 160 columns —
    past that a track line is mostly gap — and the dialogs grow with it within what their
    content asks for. They still fit in the 60x18 minimum.
  • With transparency on, the player shows through the windows. A terminal cannot
    blur, so what stands in for it is a translucent scrim with a frosted-glass frame. To
    keep that from costing anything, the player stops redrawing itself while a window is
    in front: measured at 240x62 with the library open, 37.7% of a core with it animating
    against 0.5% with the background still, and the opaque modal it replaced cost 8.8%.
    What is not cosmetic keeps running behind: end of track, mpv's health, MPRIS and the
    status line.
  • Cover art changes protocol live, without a restart, and one that arrives while a
    window is open no longer paints over it. With transparency on, only blocks and
    off are offered: kitty and sixel make the terminal paint the image over the text, so
    they would cover the very window transparency exists to show. Turning it off brings
    the five modes back.
  • The settings screen is grouped into Audio, Appearance and General. Ten settings in
    one column read as ten unrelated switches, with the stream's quality next to the
    colour of the borders. The list scrolls itself when the terminal is small.
  • winamp.tcss becomes styles.tcss: it holds the whole layout and the four visual
    styles, of which retro is only one.

Fixed

  • The browser's hint bar only half fitted. It was one 97-cell literal inside an
    84-cell box, so the terminal cut it mid-word and left a stray R against the edge with
    R reload and Esc close lost. It now drops whole entries, least essential first,
    until the line fits.
  • The status line is only rewritten when it changes. It was refreshed four times a
    second whatever it said, and repainting costs the same either way.

Installation

Requires Python 3.11 or later and mpv installed on the system.

pipx install "tidalamp[art]"

To upgrade from an earlier version, pipx upgrade tidalamp: the art extra is kept.

The AUR package is ready, but publishing it is still on hold while the service's public
registration for new accounts remains closed.

The full list of changes is in
CHANGELOG.md.