Skip to content

docs(text-display): document every setting, with real renders - #365

Merged
ChuckBuilds merged 1 commit into
mainfrom
docs/text-display-readme
Sep 2, 2026
Merged

docs(text-display): document every setting, with real renders#365
ChuckBuilds merged 1 commit into
mainfrom
docs/text-display-readme

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

Sixth plugin in the README pass. Documentation only; no behaviour change. Still avoiding the sports scoreboards while #359 is open.

Scroll speed was described wrong

Three settings look like they control it, and the old README called scroll_speed "a multiplier, not px/s". The code says otherwise:

pixels per second = scroll_speed / scroll_delay
  • scroll_speed is pixels per frame — clamped at 5, with a warning logged above that.
  • scroll_delay is the throttle, seconds per frame.
  • target_fps is a pacing hint passed to the core scroll helper. Raising it alone does nothing to the rate — a setting people will reach for first, so it's called out explicitly.

font_mode gets a four-panel comparison

It's the setting that decides whether sizing needs thinking about at all: manual overflows long text and leaves short text small; auto shrinks long text to fit and grows short text to fill. Both values hash-verified as distinct rather than assumed — that check has caught silently-broken enums in the last two plugins, though this one is fine.

Also documented: font_size is ignored in auto mode and by .bdf faces, which are drawn at their own fixed pixel size.

Two undocumented behaviours

  • enabled defaults to false — a fresh install shows nothing.
  • A scroll legitimately begins with a blank panel, because the text starts fully off the right edge. That's also why there's no scrolling screenshot: a single frame at the start of a pass is an empty panel, and staging one would misrepresent it. Said plainly in the README rather than quietly omitted.

Audits before opening

  • Config tokens vs the old README: none dropped
  • All 15 schema leaves documented
  • No broken TOC anchors
  • Every old section accounted for — the tips and use-case blocks are folded in as recipes rather than dropped, keeping the concrete guidance that a scroll_gap_width roughly equal to panel width gives the cleanest loop

Verification

  • check_plugin.py --plugin text-display — 8/8 PASS, goldens match
  • render_docs_assets.py --plugin text-display --check — images match
  • check_module_collisions.py — OK across 43 plugins
  • manifest bumped 1.1.5 → 1.1.6, plugins.json regenerated

Separately — I saw #364 supersedes my 7-segment fix from #355, and you're right. My rule (a > 0 and (r or g or b)) happened to work on Pillow 11.3.0 because it ignores the tRNS chunk for mode 1 images and returns alpha 255 for every pixel. On a Pillow that honours tRNS the alpha inverts and my condition is false everywhere — blank panel again. Your brightness-mask approach is version-independent and correct.

Worth noting my verification didn't catch it: harness 8/8, goldens matching, and a visual check all passed, because all three ran against the same Pillow. A dependency-behaviour difference is invisible to that.

🤖 Generated with Claude Code

Documentation only; no behaviour change. All 15 settings are covered, with real
rendered screenshots for the ones a picture actually settles.

The main thing this clears up is scroll speed. Three settings look like they
control it and the old README described scroll_speed as "a multiplier, not
px/s", which is not what the code does. The rate is scroll_speed / scroll_delay,
scroll_speed is pixels per FRAME (clamped at 5, with a warning logged above
that), and target_fps is a pacing hint passed to the core scroll helper that
will not make text move faster on its own -- raising it without lowering
scroll_delay does nothing to the rate.

font_mode gets a four-panel comparison because it is the setting that decides
whether sizing needs thinking about at all: manual overflows long text and
leaves short text small, while auto shrinks long text to fit the panel and grows
short text to fill it. Verified both values render distinctly rather than
assuming. Also documents that font_size is ignored in auto mode and by .bdf
faces, which are drawn at their own fixed pixel size.

Two behaviours that were previously undocumented: enabled defaults to false, so
a fresh install shows nothing; and a scroll legitimately begins with an empty
panel, because the text starts fully off the right edge. That second one is
also why there is no scrolling screenshot -- a single frame at the start of a
pass is a blank panel, and faking one would misrepresent it.

The old README's tips and use-case sections are folded in as recipes rather
than dropped, including the concrete guidance that a scroll_gap_width roughly
equal to the panel width gives the cleanest loop.

Audits before opening: no config token dropped, all 15 schema leaves
documented, no broken TOC anchors, and every old section accounted for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: b026afea-04d0-471c-b864-aa43874b6082


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@ChuckBuilds
ChuckBuilds merged commit b90a8e3 into main Sep 2, 2026
3 of 4 checks passed
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