Skip to content

Native animated welcome logo (Assemble, Shine, Glow pulse, Glitch, Embers) + modern-controls rule - #531

Draft
raiseCatError wants to merge 3 commits into
feature/nmsh-custom-shaders-20261029from
feature/welcome-logo-animation-20261029
Draft

raiseCatError wants to merge 3 commits into
feature/nmsh-custom-shaders-20261029from
feature/welcome-logo-animation-20261029

Conversation

@raiseCatError

Copy link
Copy Markdown
Owner

Stacked on #530. NMSh's own welcome now animates a still logo image (PNG, JPEG or WebP, transparency kept). The frames are generated in memory from the still, with no GIF and no files, and are played through the same path animated GIF/APNG welcome images already use.

  • Presets: Assemble (sparks gather and the logo forms out of their light), Shine, Glow pulse, Glitch, Embers.
  • Play: Once at startup (about 1.4–2.1 s) or Gentle loop. The loop stops after 30 s, on typing, or when the window loses focus.
  • Defaults: Off by default. The output is byte-identical when Off, and Reduced Motion or Effects Off show the still image.
  • Budgets: generation is seeded and fits the existing animation limits (75 frames, 32 MiB, 5 s).
  • Settings: Welcome Studio › Animation has two rows, Logo animation and Play.

Also in this PR, following the maintainer's request for modern UI only:

  • renderValueControl('bool') now uses the shared checkmark (✔ / ·) instead of a radio-style (*).
  • AGENTS.md gains a permanent "Modern controls only" rule naming the shared pickers, toggles and reviews.
  • tests/uiConsistency.test.ts fails on hand-drawn [x]/[ ] or (*)/( ) marks. A red check confirmed it catches the old toggle.

Physical QA was done in a disposable Kitty 0.49.2 with forced Kitty graphics, using a generated test logo. Screenshots are in the evidence folder welcome-anim/.

Known gaps:

  • On Auto, a late Kitty graphics probe reply can drop the welcome to character art. That reply can also land in the composer (existing behavior in src/host/probe.ts).
  • Any keypress turns the welcome image into character art (existing cancelMotion).
  • Sixel and Ghostty were not tested physically.

Tests: 89 related focused tests pass, plus the new welcomeLogoAnimation tests; tsc is clean.

… AGENTS rule and a guard test

renderValueControl('bool') drew a radio-style (*) toggle; it now uses checkMark like renderToggle. AGENTS.md names the
shared pickers, toggles and reviews to reuse, and tests/uiConsistency.test.ts fails on hand-drawn [x]/[ ] or (*)/( ) marks.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant