Vintage digital display with a high-fidelity 7-segment font. 10 color themes, custom colors, ghost segments, CRT scanlines, desktop widget mode, a quick color-switch menu, and integrated alarms with an on-screen dialog so they're never missed. Reads its own bundled font and alarm sound files, and copies the bundled font into ~/.local/share/fonts on first opening preferences so the live preview renders correctly; no other file access.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 73 | Active |
| 72 | Active |
| 71 | Active |
| 70 | Active |
| 69 | Active |
| 68 | Active |
| 67 | Rejected |
| 66 | Active |
| 65 | Active |
| 64 | Active |
| 63 | Active |
| 62 | Active |
| 61 | Active |
| 60 | Active |
| 59 | Active |
| 58 | Active |
| 57 | Rejected |
| 56 | Active |
| 55 | Active |
| 54 | Active |
| 53 | Active |
| 52 | Rejected |
| 51 | Active |
| 50 | Active |
| 49 | Active |
| 48 | Active |
| 47 | Rejected |
| 46 | Inactive |
| 45 | Inactive |
| 44 | Rejected |
| 43 | Inactive |
| 42 | Inactive |
| 41 | Inactive |
| 40 | Inactive |
| 39 | Inactive |
| 38 | Rejected |
| 37 | Rejected |
| 36 | Inactive |
| 35 | Inactive |
| 34 | Rejected |
| 33 | Inactive |
| 32 | Inactive |
| 31 | Inactive |
| 30 | Rejected |
| 29 | Inactive |
| 28 | Rejected |
| 27 | Rejected |
| 26 | Rejected |
| 25 | Rejected |
| 24 | Inactive |
| 23 | Inactive |
| 22 | Rejected |
| 21 | Rejected |
| 20 | Rejected |
| 19 | Inactive |
| 18 | Inactive |
| 17 | Inactive |
| 16 | Rejected |
| 15 | Inactive |
| 14 | Rejected |
| 13 | Inactive |
| 12 | Rejected |
| 11 | Inactive |
| 10 | Inactive |
| 9 | Inactive |
| 8 | Rejected |
| 7 | Rejected |
| 6 | Rejected |
| 5 | Rejected |
| 4 | Rejected |
| 3 | Rejected |
| 2 | Rejected |
| 1 | Rejected |
# 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.