Review of "Retro LCD 7-Segment Clock" version 49

Details Page Preview

Vintage digital display with high-fidelity 7-segment font. Features Neon Green, Amber, and Retro Gray modes with integrated alarm.

Extension Homepage
https://gitlab.com/corral1976/gnome-shell-extension-relojlcd

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental)

Shexli did not find any issues.

All Versions

Previous Reviews on this Version

Corral1976 posted a review
# Review notes — Retro LCD 7-Segment Clock v49 ## Summary This update fixes an alarm bug and does a small internal code cleanup. No new permissions, dependencies, network access, or GSettings keys were added. ## Bug fix: alarm could fail to ring `_checkAlarm()` used to require `now.get_second() === 0` at the exact moment the clock's refresh timeout fired. That timeout's interval depends on two user settings (`blink-dots`, `show-seconds`): ```js const interval = blinkEnabled ? 500 : (showSeconds ? 1000 : 10000); ``` With the default values (500ms or 1000ms) this worked fine. But if a user disabled both "Show seconds" and "Blinking separators", the interval became 10000ms, and since that cycle isn't synced to the wall clock, the check almost never landed on the exact second `:00` — so the alarm could silently never fire with that particular combination of settings. **Fix:** the trigger condition was changed from "exact second" to "once per minute", using a timestamp flag (`_lastAlarmStamp`) to avoid firing twice within the same minute. This makes the alarm reliable regardless of the clock's refresh rate. The flag is reset on `enable()`/`disable()`. Affected file: `extension.js`, `_checkAlarm()` method (plus one line each in `enable()`/`disable()` to init/clear the flag). ## Code cleanup (no behavior change) - Extracted `_invalidateStyleCache()` to replace five identical blocks that reset the same three style-cache variables. - Added a `glow` property to the existing color theme map (`themeMap`), replacing three repeated `if/else` chains that computed the same glow color per theme with a single `theme.glow` reference. Neither change affects the visual output or behavior. ## Testing - `node --check` on `extension.js` and `prefs.js` (valid syntax). - `glib-compile-schemas` on `schemas/` (schema unchanged from v48, still compiles cleanly). - Manually verified the alarm with all four combinations of `blink-dots`/`show-seconds`, including the previously-broken case (both disabled). ## Compatibility Only `metadata.json`'s version was bumped (48 → 49). `shell-version` range (`45`–`48`) is unchanged; no new APIs were used.
JustPerfection active