Skip to main content

Module splash

Module splash 

Source
Expand description

Pixel-art splash scene — a beanstalk growing out of its pot (the ebman = Elastic Beanstalk gag: watch the thing sprout). Used by the boot splash and the :about overlay.

Each glyph in a frame is a palette key, not a literal. The renderer (splash_scene_lines) paints every non-. key as a two-cell ██ block coloured via [splash_pixel] — two cells wide so each logical pixel is roughly square (terminal cells are ~1:2). The . key is transparent (rendered as two blank cells).

14 frames take the env from bare pot to full bloom: 8 keyframes from the JSON design source (indices 0, 1, 3, 5, 7, 9, 11, 13) interleaved with 6 hand-drawn in-betweens (2, 4, 6, 8, 10, 12) that smooth the largest visual jumps. The pot stays rooted across every frame so the growing motion reads against a fixed anchor.

Palette keys: # outline (dark green) · G leaf · L leaf highlight · F bud · P pot · T soil. All frames are 20×20.

Constants§

SPLASH_SCENE_COLS
Number of art columns per frame. Every frame is exactly this wide; the renderer relies on that to avoid per-frame jitter when alignment recentres. Doubled (×2) at render time so logical pixels are roughly square in the terminal cell grid.
SPLASH_SCENE_ROWS
Number of art rows in the splash scene (every frame is the same height). Used by callers to size the splash card / about popup.

Functions§

draw_splash
Draw one splash frame to the terminal. Composes the splash_scene_lines beanstalk-growth scene (when the terminal has room) with the tagline + byline + connecting-to-AWS spinner. In Powerline mode (resolved by font_probe before this runs) pills the tagline + byline + a v{VERSION} tab on the top border; falls back to plain text otherwise.
splash_scene_lines
Build the coloured lines for the splash scene at frame. Each non-transparent pixel is a two-cell ██ block in its palette colour, so the logical pixels are roughly square. Used by the boot splash and the :about overlay.
splash_shows_scene
Pure: whether the boot splash has room for the pixel-art scene. Below this it falls back to the compact text-only card. Scene is 40 cells wide (20 px × 2) and 20 rows tall; the threshold is the card chrome budget (+ borders / padding) on top.