On a light background (Catppuccin Latte in Ghostty on macOS) the panes kept palette color 0, a dark grey slab with white text. The probe now also asks for the text color (OSC 10). Light backgrounds are used as well, with text, borders and titles in the terminal's text color, input fields and buttons in a light shade of it, and the active tab drawn in it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
69 lines
5.2 KiB
Markdown
69 lines
5.2 KiB
Markdown
# Changelog
|
|
|
|
## Unreleased
|
|
|
|
- **The terminal's own colors, light themes too:** the panes used color 0 of the terminal's palette
|
|
("black"), which color themes often set to a grey that differs from their background (e.g.
|
|
Catppuccin), so the whole program looked washed out, and on light themes it was a dark grey slab
|
|
with white text. The terminal is now asked for its background and text colors at startup. Dark
|
|
backgrounds are used as they are; on light ones the text, borders, input fields and the active
|
|
tab follow the terminal's text color as well. Needs 24-bit color; the Log says which colors are
|
|
used and why.
|
|
- **Smooth scrolling on huge terminals:** while an arrow key is held, the poster waits until the
|
|
selection rests (120 ms). Every poster rewrites all of its cells, which on a terminal zoomed far
|
|
out was more output per step than the terminal could draw, so moving through a list lagged.
|
|
- **Posters in macOS Terminal:** Terminal.app draws the half and quarter blocks from the font, and
|
|
their halves do not meet at the middle of the cell, so posters looked like rows of shifted dots.
|
|
`auto` now draws them there as plain colored cells (new `ui.cover_style` value `cells`): coarser,
|
|
but even. For real images on macOS use Ghostty or kitty.
|
|
- **Real images in Ghostty and kitty on macOS:** the question whether the terminal supports the
|
|
Kitty graphics protocol gave up at once on macOS (a terminal device there cannot have a read
|
|
timeout in Go), so posters were always drawn with blocks. It now waits with select(2).
|
|
- **Real images only when the terminal confirms it:** the terminal is asked whether it supports the
|
|
Kitty graphics protocol before real-image posters are used, so terminals that only look like kitty
|
|
or Ghostty no longer get graphics commands printed as text. On macOS the sextant blocks are no
|
|
longer chosen from fontconfig's fonts.
|
|
- **Ctrl+C quits**; `q` no longer does (also not in the help window, which closes with Esc).
|
|
- **Series drill-down** shows the series poster and details of the selected season or episode,
|
|
including the episode's plot.
|
|
- **Posters in WebP and GIF:** Sonarr/Radarr can store WebP data under a `.jpg` name; such posters
|
|
(and GIFs) now show instead of failing with "unknown format". When a poster cannot be read, the Log
|
|
says what it looks like. If an instance has no copy of a poster, or only answers with its login page, the API key is also tried as a query parameter and then the provider's poster is used.
|
|
- **Config (F6):** edit the settings of the config file inside the program (addresses, API keys,
|
|
add-form defaults, refresh interval, posters, notifications), test the connections, save, and
|
|
have everything take effect immediately. Environment-provided values are never written to the file.
|
|
The Log is now on F7.
|
|
- **Posters as real images** in kitty and Ghostty (Kitty graphics protocol with Unicode
|
|
placeholders), at the terminal's full resolution and with the right aspect ratio. Other terminals
|
|
keep the block-character posters, using sextants when fontconfig finds a font with the glyphs
|
|
(e.g. GNOME Terminal with Adwaita Mono) and quadrants otherwise. `ui.cover_style` gains `kitty`; `auto` is the default.
|
|
- **Calendar (F5):** two weeks of movie releases and airing episodes grouped by day, with poster,
|
|
plot, release search and automatic search. The Log moves to F7.
|
|
- **Download notifications:** popup and log entry when a SABnzbd download finishes or fails, in the
|
|
background (`ui.notify_downloads`, optional `ui.bell`).
|
|
- **Remove from the library** (`d`), with separate checkboxes for deleting the files and for the
|
|
import exclusion; both off by default.
|
|
- On narrow terminals the connection indicators shrink to initials.
|
|
|
|
## v0.1.0
|
|
|
|
First release.
|
|
|
|
- **Movies / Series:** search Radarr and Sonarr as you type, add titles with quality profile, root
|
|
folder, monitoring and optional automatic search ("Search now" is turned off when nothing would be
|
|
monitored, since Radarr/Sonarr skip unmonitored items).
|
|
- **Interactive release search:** list releases with approval/rejection reasons, sort, hide
|
|
rejected ones, filter by quality, codec (x265/x264/AV1), HDR/DV, audio format (Atmos, TrueHD, DTS,
|
|
DD+, ...) and language, and grab one. Series: pick a season or an episode.
|
|
- **Library:** movies and series side by side, each with its own status filter, text filter and
|
|
file-property filter (quality, codec, HDR/DV, audio, language). Filter dialog changes apply live
|
|
and only offer options that match something. Toggle monitoring, start automatic searches.
|
|
- **Series drill-down:** seasons and episodes with monitoring, automatic search and release search.
|
|
- **Downloads:** SABnzbd queue and history plus the Radarr and Sonarr queues; pause/resume, delete,
|
|
retry, remove and blocklist.
|
|
- **Posters:** a thumbnail at the top right of the detail panes with the text flowing around it (quadrant or, on capable terminals, sextant block rendering; `ui.cover_style`).
|
|
- **Log (F7) and popups:** feedback appears as fading popups; the log keeps the history.
|
|
- Connection indicators for all three services, context-sensitive key hints, a help screen (F9).
|
|
- JSON config with environment overrides (`ARR_TUI_*`), `--version`, cross-platform builds
|
|
(`make dist`).
|