Skip to content

v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Jul 13:42

A major UI overhaul following common TUI conventions, plus new inspection features.

New features

  • FITS header viewer (v): full-screen, less-style page showing every header card in file order — including comments, COMMENT/HISTORY cards, and merged CONTINUE long-strings. Scroll with j/k/g/G/PgUp/PgDn, search incrementally with / (matches highlighted, n/N to cycle).
  • Crosshair pixel readout (x): move a crosshair over the image with h/j/k/l; the status bar shows FITS coordinates (1-based, bottom-up) and the pixel value. Rendered into the image itself, so it works identically on every graphics protocol.
  • Mouse support (opt-in via --mouse or the M toggle): scroll to zoom at the cursor, drag to pan, click to select picker rows.
  • Zoom below 1×: the image shrinks inside the window down to 0.1×.

UI improvements

  • Panels instead of overlay popups: help and the header viewer are full-screen pages; summary, extension picker, and protocol picker are side panels; manual cut entry is a bottom strip. Panels never cover the image.
  • Extension picker (e) now shows HDU kind, EXTNAME, dimensions, and pixel type; non-viewable HDUs are dimmed and skipped; load failures are reported instead of silently ignored.
  • Vim-style keys: h/j/k/l fine pan, H/J/K/L / Shift+Arrows coarse pan, ? for help. Esc no longer quits the app (only q does). Direct protocol keys were replaced by a P picker; p still cycles.
  • Status bar redesigned: emoji-free three segments (file/extension/dims · zoom/stretch/colormap/cuts · protocol/hints) with transient vim-style messages for errors and confirmations.
  • Help content is generated from the actual keymap, so it can no longer drift from the real bindings.

Fixes

  • The Kitty and Sixel popup-redraw workarounds (--disable-sixel-clear, RETROFITS_DISABLE_SIXEL_CLEAR) are gone — the non-overlapping layout removes their root cause. R remains as a manual force-redraw.
  • Fixed a long-standing Konsole+Sixel artifact where every image re-emit scrolled the screen one row, leaving a duplicated status-bar line (a one-row sixel gutter prevents it).
  • Fixed a render-thread race where a queued extension switch could be silently dropped.

Testing

  • New visual regression harness (tests/visual/run.sh) drives real kitty and konsole emulators headlessly under Xvfb and pixel-diffs screenshots to prove panel open/close cycles leave no graphics-protocol artifacts.
  • Pixel orientation/readout pinned against astropy reference values.

Breaking changes: Esc no longer quits; h pans instead of opening help (use ?); H/S/K/I protocol shortcuts replaced by P; --disable-sixel-clear removed.

Full Changelog: v0.1.1...v0.2.0