Skip to content

fix(clock-simple): make the bitmap fonts work, and document every setting - #362

Merged
ChuckBuilds merged 2 commits into
mainfrom
docs/clock-simple-readme
Sep 2, 2026
Merged

fix(clock-simple): make the bitmap fonts work, and document every setting#362
ChuckBuilds merged 2 commits into
mainfrom
docs/clock-simple-readme

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

Fourth plugin in the README pass. Went for a non-sports plugin this round because #359 touches all seven remaining scoreboards — working one of those now would guarantee a conflict and force a re-render. I'll pick the scoreboards back up once it lands.

Three of six fonts did nothing

Generating the font comparison grid, four of the six options rendered byte-identical:

2751452c8964: ['PressStart2P-Regular.ttf', '5x7.bdf', '4x6.bdf', 'cozette.bdf']
4845c37f37a2: ['4x6-font.ttf']
b0bcce4c2a45: ['5by7.regular.ttf']

Two separate causes, both failing the same silent way — a warning in the log and a fall back to the default face, so the setting looked broken rather than misconfigured:

5x7.bdf and 4x6.bdf — a .bdf is a bitmap face that exists at exactly one pixel size. The loader asked for font_size (8 by default) and FreeType answered invalid pixel size for every .bdf. The code comment even said "FreeType handles .ttf and (at its native size) .bdf faces" — the constraint was known, the size just was never passed. Now retried at the size the file's own PIXEL_SIZE header declares (7 and 6 respectively).

cozette.bdf — the file isn't shipped by the core or the plugin. cannot open resource. It's a phantom option, removed from the three pickers.

After the fix all five remaining fonts render distinctly:

2751452c89: ['PressStart2P-Regular.ttf']   8be03fcb40: ['5x7.bdf']
4845c37f37: ['4x6-font.ttf']               0e116d0b3d: ['4x6.bdf']
b0bcce4c2a: ['5by7.regular.ttf']

On the version bump: removing a schema enum option would normally be major. This one has never functioned, so no working config can depend on it — hence minor. Happy to keep it listed and merely documented as unavailable if you'd rather.

README

Rewritten around real screenshots, covering all 20 settings. Things it previously left unsaid:

  • enabled defaults to false — unlike most plugins here, and the usual reason a fresh install shows nothing.
  • The timezone resolution order: plugin → global → system, with no UTC fallback.
  • font_size applies only to scalable .ttf faces; a .bdf ignores it by nature.
  • 24h mode never draws the AM/PM element at all.
  • How text shrinks and the date falls back through shorter forms — September 2ndSep 2ndSep 2 — which the 64×32 shot shows in action.

Verification

  • Config-token audit vs the old README: nothing dropped, no broken TOC anchors, all 20 schema leaves documented
  • python scripts/check_plugin.py --plugin clock-simple — 8/8 PASS, goldens match
  • python scripts/render_docs_assets.py --plugin clock-simple --check — images match
  • python scripts/check_module_collisions.py — OK across 43 plugins
  • manifest bumped 1.0.10 → 1.1.0, plugins.json regenerated

🤖 Generated with Claude Code

…ting

Three of the six fonts in the picker did nothing, each for its own reason, and
all three failed the same way: a warning in the log and a silent fall back to
the default face, so the setting looked broken rather than misconfigured.

A .bdf is a bitmap face that exists at exactly one pixel size. The loader asked
for font_size (8 by default), FreeType answered "invalid pixel size" for every
.bdf, and the clock used the default font -- 5x7.bdf and 4x6.bdf rendered
byte-identical to PressStart2P-Regular.ttf. They are now retried at the size
the file's own PIXEL_SIZE header declares. Verified by rendering all six and
hashing: before, four of six were the same image; after, all five remaining
fonts are distinct.

cozette.bdf is removed from the three font pickers. The file is shipped by
neither the core nor the plugin, so choosing it could only ever fall back to
the default. Removing a schema option would normally be a major bump, but this
one has never functioned, so no working configuration can depend on it -- hence
minor. Say the word if you would rather it stayed listed and merely documented.

The README is rewritten around real rendered screenshots and now covers all 20
settings. Things it previously left unsaid: enabled defaults to false, which is
the usual reason a fresh install shows nothing; the timezone resolution order
(plugin, then global, then system, with no UTC fallback); that font_size
applies only to scalable .ttf faces; that 24h mode never draws the AM/PM
element at all; and how the text shrinks and the date falls back through
shorter forms -- "September 2nd" to "Sep 2nd" to "Sep 2" -- to fit a narrow
panel, which the 64x32 shot shows.

Config-token audit against the old README: nothing dropped, no broken TOC
anchors, and all 20 schema leaves documented.

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: c49b5a9a-f99d-42ff-b159-4507073d1cd4


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.

The config-token audit only looks at settings, so it did not catch that the
rewrite dropped a prose section: how to preview a change with the core's
dev_server.py and --extra-dir, and the pointer to DEV_PREVIEW.md. Worth having
-- it is the fastest loop for anyone changing this plugin, and nothing else in
the README says it exists.

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

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 9 complexity

Metric Results
Complexity 9

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.

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