Skip to content

Latest commit

Β 

History

History
104 lines (77 loc) Β· 5.48 KB

File metadata and controls

104 lines (77 loc) Β· 5.48 KB

Changelog

[2.3.0]

Fixed

  • CLI no longer errors with "no command called X" when passing text directly as a positional argument (e.g., bangen "hello"). The entry point now automatically routes bare text arguments to the main subcommand.
  • TUI rendering on Linux/macOS no longer produces shattered/jagged output. The tty.setraw() call was clearing the terminal's OPOST flag, which disabled \n β†’ \r\n translation and broke Rich's layout rendering. Output processing is now restored immediately after entering raw mode. SIGWINCH is also handled to refresh the console on terminal resize.

[2.2.3]

Added

  • pyperclip dependency for improved clipboard paste support in TUI text input boxes
  • GitHub Actions workflow now dynamically extracts dependencies from pyproject.toml instead of hardcoding them for PyInstaller builds

Changed

  • Auto-sizing is now enabled by default β€” use --no-auto-size to disable it
  • Auto-sizing no longer requires the --auto-size flag to activate; default behavior now includes automatic terminal-based sizing
  • Text input fields in export and preset dialogs now support full cursor movement with arrow keys (← β†’)
  • Text input now supports mid-string character insertion and deletion instead of append-only editing
  • Paste operations in text boxes now insert at the current cursor position instead of appending to the end

Fixed

  • Text cursor now displays at the actual insertion point in input fields
  • Backspace in text boxes now removes the character at the cursor position instead of always removing the last character

[2.2.2]

Changed

  • Temporal effects (fade_in, wipe, stagger) now perform continuous looping animations instead of stopping after initial transition

[2.2.1]

Added

  • CLI export progress display with a live progress bar, percentage, elapsed time, ETA, and stage text
  • Typer-powered CLI help output with cleaner option formatting and examples
  • GitHub Actions release workflow for standalone Windows, macOS, and Linux binaries uploaded to GitHub releases using the version from pyproject.toml

Changed

  • Removed HTML export support from the codebase, CLI surface, and documentation
  • GIF export now reports granular progress across frame rendering, palette construction, quantization, and file writing
  • Migrated the CLI help/parser layer from argparse to Typer while keeping the existing flag-oriented workflow
  • TUI export modal now displays live export progress with percentage, elapsed time, ETA, and stage text during rendering
  • Standalone release binaries now collect the full bangen package plus pyfiglet, Rich, and Pillow runtime assets so the packaged TUI app resolves imports correctly on Windows, macOS, and Linux
  • Project version metadata now reflects 2.2.1

[2.2.0]

Added

  • --screensaver full-screen terminal mode with auto-fitted banner sizing, randomized scene rotation, effect mixing, and optional seed/duration controls
  • Screensaver font rotation across multiple safe fitted fonts per scene
  • Expanded README documentation for screensaver mode and refreshed presentation details

Changed

  • Refined the README structure and GitHub presentation, including more deliberate visual emphasis

Fixed

  • Screensaver scene generation now skips invalid randomized effect kwargs instead of breaking playback
  • Screensaver fitting now reserves extra margin for motion/distortion-heavy scenes so text stays on-screen
  • Screensaver font selection is randomized across safe fits instead of collapsing into one repeated choice

[2.1.0]

Added

  • --preset-file support in the CLI for loading a preset JSON from any path without saving it
  • TUI preset loader modal with support for loading saved presets or an arbitrary preset file
  • Expanded README documentation for preset authoring, preset loading, and current CLI/TUI workflows

Changed

  • Reworked the active effect library for more stable, bounded, export-safe motion, distortion, visual, and signature rendering
  • Improved GIF and PNG raster rendering with better font metrics, larger raster sizing, and shared GIF palette generation across sampled frames
  • Refined flicker and glitch behavior to reduce export fuzziness and palette churn

Fixed

  • wipe now reveals visible content bounds instead of wasting progress on indentation
  • Preset-derived gradient_direction is preserved unless explicitly overridden on the CLI
  • Windows console export status output now uses ASCII arrows to avoid cp1252 encoding crashes

[2.0.0]

Added

  • Modular architecture: rendering, gradients, effects, tui, cli, export, presets, ai
  • True-colour RGB gradient engine with multi-stop interpolation (Gradient)
  • Composable effect pipeline on the Banner object
  • Effects: Wave, Glitch, Pulse (brightness oscillation), Typewriter, Scroll
  • Full-screen interactive TUI with split controls/preview layout (TUIApp)
  • Full CLI via argparse with all features accessible from the terminal
  • JSON preset system stored in ~/.bangen/presets/ (8 built-in presets)
  • Multi-format export: TXT, PNG, animated GIF
  • External FIGlet font loading via --font-dir
  • AI rule-based prompt-to-style suggester

Changed

  • Minimum Python version raised to 3.11
  • pyfiglet and rich remain the only required dependencies
  • Pillow is now an optional dependency (pip install bangen[images])

Removed

  • Monolithic single-file bangen.py replaced by package

[0.1.0]

  • Initial release: interactive prompts, 5 named colours, line-by-line animation, TXT save