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.
EGO-L-002 warning
objects created by extension should be destroyed in disable()
Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.
extension.js:101
this._clockLabel = new St.Label({
text: this._getPlaceholderText(showSeconds, showDate, isWidget),
y_align: Clutter.ActorAlign.CENTER,
style_class: 'reloj-lcd-label'
})
EGO-L-005 warning
owned object references should be released in disable()
Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.
extension.js:101
this._clockLabel = new St.Label({
text: this._getPlaceholderText(showSeconds, showDate, isWidget),
y_align: Clutter.ActorAlign.CENTER,
style_class: 'reloj-lcd-label'
})
| 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 |
Version 38 - Memory & UX Fixes Implemented Changes: EGO015 Fix (Memory Leak): Implemented a professional signal management system in extension.js. Initialized this._signals array in the constructor. Created _connect(obj, signal, callback) helper method to automatically track {obj, id} pairs. Added a cleanup loop in disable() that disconnects all signals before clearing the array. Replaced all direct .connect() calls with this._connect() for both the widget and the panel indicator. Widget Dragging UX Improvements: Added Clutter.grab_pointer(actor) at the start of dragging (button-press-event). Added Clutter.ungrab_pointer() when dragging ends (button-release-event). Result: This prevents the "lost widget" issue where the clock would stop moving and get stuck on the desktop if the user moved the mouse too quickly, especially with smaller widget sizes. Event Return Correction: Ensured all event handlers return Clutter.EVENT_STOP or Clutter.EVENT_PROPAGATE as appropriate. Fixed the panel button-press-event return logic for better consistency. Modified Files: extension.js: Signal management system and dragging logic improvements. metadata.json: Version bumped to 38. I upgrade this Version 38 because I forget to put the ttf in the zip file :) Thank you for your patience and your help.