Commit Graph
66 Commits
Author SHA1 Message Date
nilsandClaude Opus 5.5 08d3417b05 Light terminal themes: use the terminal's text color too
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
2026-10-21 11:59:44 +02:00
nilsandClaude Opus 5.5 d2e868293f Terminal background: decide 24-bit color like tcell, and log why
The check only looked at COLORTERM, but tcell also draws 24-bit color for
terminals whose description has it (xterm-ghostty, xterm-kitty), so in
Ghostty on macOS without COLORTERM the background was never used. Use
tcell's rules, and always log which background is used and why.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:53:47 +02:00
nilsandClaude Opus 5.5 0270462fe4 Use the terminal's own background color
The panes used palette color 0, which color themes such as Catppuccin set
to a grey lighter than their background: everything looked washed out and
grey text almost disappeared (seen in Ghostty on macOS). The startup probe
now also asks for the background color (OSC 11), and with 24-bit color and
a dark background that color is used. The probe always runs at startup, so
a later switch to real images in the Config view never has to ask the
terminal while the screen owns it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:47:27 +02:00
nilsandClaude Opus 5.5 7e77d56879 Remove the "halves" cover style again
Tried in macOS Terminal: it does not look good there either.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:44:52 +02:00
nilsandClaude Opus 5.5 8f162729ea Cover style "halves": left and right half blocks only
Twice the horizontal detail of "cells", for terminals such as macOS
Terminal whose upper and lower half blocks do not meet at the middle of
the cell.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:38:04 +02:00
nilsandClaude Opus 5.5 417e61da00 Kitty graphics probe that works on macOS
Go cannot set a read deadline on a terminal device on macOS (kqueue does
not support them), so the probe failed at once and Ghostty and kitty got
block posters there. Wait for the answer with select(2) instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:38:04 +02:00
nilsandClaude Opus 5.5 a71ca6e3fb Posters wait while the selection moves quickly
On a terminal zoomed far out a poster is tens of thousands of cells, and
redrawing it on every step of a held arrow key was more output than the
terminal could draw (about 100 KB per step at 600x180), so the list
lagged. A selection that changes again within 120 ms keeps the poster's
place empty and shows the poster once it rests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:31:51 +02:00
nilsandClaude Opus 5.5 080ef9ec8e Posters in macOS Terminal as plain colored cells
Terminal.app draws block elements from the font, with the halves off the
cell's middle, so quadrant posters came out as rows of shifted dots. The
new cover style "cells" uses one background color per cell and no glyph;
auto picks it when TERM_PROGRAM is Apple_Terminal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:18:03 +02:00
nilsandClaude Opus 5.5 2aa28c7e18 Ask the terminal before using Kitty graphics; no fontconfig-based sextants on macOS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 11:08:36 +02:00
nilsandClaude Opus 5.5 705d795e6d Quit with Ctrl+C only; q is an ordinary key everywhere
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 10:20:18 +02:00
nilsandClaude Opus 5.5 60fd71bc92 Series drill-down: poster and details of the selected season or episode
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 08:28:49 +02:00
nilsandClaude Opus 5.5 8601a2af6f Graphics debug log: also log what is drawn, optionally to a file
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
2026-10-21 01:25:40 +02:00
nilsandClaude Sonnet 5.5 55810bb1e2 Real-image posters: blocks while the window is being resized; ARR_TUI_DEBUG_GFX log
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 00:35:19 +02:00
nilsandClaude Sonnet 5.5 cf07aaf8fb Real-image posters: a new size is a new image id, never a changed placement
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 00:29:16 +02:00
nilsandClaude Sonnet 5.5 4d602b2acb Posters: decode WebP and GIF; say what unreadable poster data looks like
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 00:20:14 +02:00
nilsandClaude Sonnet 5.5 9edd62634f Posters: re-place after a resize, measure cell size without padding, log failed posters
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 00:14:50 +02:00
nilsandClaude Sonnet 5.5 b40ee8b61c Config view: rename Test connections to Test; center Save and Revert
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 00:01:17 +02:00
nilsandClaude Sonnet 5.5 26e1679e4e Config view: Test connections below the service settings; hide a stale cursor
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:59:02 +02:00
nilsandClaude Sonnet 5.5 56bd80f7bb Config view: one list with section headings, navigated with the arrow keys
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:53:00 +02:00
nilsandClaude Sonnet 5.5 ff9e59a310 Remove the '?' help key from the docs and help: F9 is the help key
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:42:07 +02:00
nilsandClaude Sonnet 5.5 79b440f6f7 Help screen: wrap descriptions under themselves, size to the terminal
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:40:25 +02:00
nilsandClaude Sonnet 5.5 394e78ec6a Swap the Config and Log views (F6 Config, F7 Log)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:37:17 +02:00
nilsandClaude Sonnet 5.5 fbf33e076b Status bar: advertise F9 for help, which works everywhere
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:35:36 +02:00
nilsandClaude Sonnet 5.5 a4ec9ad71e Add the Config view: edit and save the settings, applied without a restart
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:31:13 +02:00
nilsandClaude Sonnet 5.5 0ccd02b3c5 Real-image posters: draw placeholder cells on the panes' background color
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:17:40 +02:00
nilsandClaude Sonnet 5.5 dd6f862d61 Real-image posters: match the box to the poster's shape and crop the remainder
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:13:47 +02:00
nilsandClaude Sonnet 5.5 b3275f6a81 auto cover style: use sextants when fontconfig has a font with the glyphs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:08:52 +02:00
nilsandClaude Sonnet 5.5 108541af91 Show posters as real images in kitty and Ghostty (Kitty graphics with Unicode placeholders)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 23:03:29 +02:00
nilsandClaude Sonnet 5.5 37f86aaf75 Revert the scrolling calendar: back to moving the two-week window with [ and ]
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:49:12 +02:00
nilsandClaude Sonnet 5.5 938980f1e1 Calendar: one scrolling list that loads more days at either end
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:47:51 +02:00
nilsandClaude Sonnet 5.5 cd5786ba78 Add the calendar view (M10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:39:39 +02:00
nilsandClaude Sonnet 5.5 7582504268 Remove titles from the library with a confirmation (M10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:36:19 +02:00
nilsandClaude Sonnet 5.5 ebbb3cd178 Announce finished and failed downloads in the background (M10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:34:55 +02:00
nilsandClaude Sonnet 5.5 fa7e77c56d Detail panes: keep a margin between the poster and the text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:06:53 +02:00
nilsandClaude Sonnet 5.5 b1e368418b Detail panes: path in the head, text flows around the poster
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 22:05:16 +02:00
nilsandClaude Sonnet 5.5 b4fe931fa9 Detail panes: poster top right, title and facts left, plot below; sextant rendering
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:57:22 +02:00
nilsandClaude Sonnet 5.5 365ba9dee8 Render covers with quadrant blocks for twice the horizontal detail
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:51:50 +02:00
nilsandClaude Sonnet 5.5 a4303ed3ca Show poster thumbnails in the detail panes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:47:50 +02:00
nilsandClaude Sonnet 5.5 ff204655d3 Swap the Library and Downloads views (F3 Library, F4 Downloads)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:44:05 +02:00
nilsandClaude Sonnet 5.5 77c25b2c92 Library: status and property filters follow the focused list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:04:30 +02:00
nilsandClaude Sonnet 5.5 b0a2c3b4fd Library: the text filter only acts on the focused list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 21:00:56 +02:00
nilsandClaude Sonnet 5.5 cd4e3b8841 Remove digit view shortcuts; check all services at startup and every 30s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:58:18 +02:00
nilsandClaude Sonnet 5.5 8a357f7418 Filter dialog: only offer options that yield results
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:48:57 +02:00
nilsandClaude Sonnet 5.5 ac1c2ebce2 Preview filter while browsing an open dropdown; Esc closes only the list
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:42:53 +02:00
nilsandClaude Sonnet 5.5 6b780242c9 Filter by audio format; apply filter changes live behind the dialog
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:36:26 +02:00
nilsandClaude Sonnet 5.5 47b9459a5e Release list: filter by quality, codec, HDR, DV and language
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:30:12 +02:00
nilsandClaude Sonnet 5.5 b34f88ef3e Library: filter by file properties (quality, codec, HDR, DV, language)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:22:06 +02:00
nilsandClaude Sonnet 5.5 a7d74e2097 Fix two highlighted fields in the add dialog when unmonitoring
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:13:11 +02:00
nilsandClaude Sonnet 5.5 76750cadf6 Library: stack movies above series with details on the right; refresh SPECS keybindings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:06:50 +02:00
nilsandClaude Sonnet 5.5 5195edc3b2 Show movies and series side by side in the library view
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 20:04:13 +02:00