Vintage digital display with a high-fidelity 7-segment look. 10 color themes, custom colors, ghost segments, CRT scanlines, desktop widget mode, a quick color-switch menu, a date tooltip on hover, and integrated alarms with an on-screen dialog so they're never missed. Draws its digits from SVG path data embedded in the extension's code (no system font installation needed) and plays alarms through GNOME Shell's native sound theme; no bundled audio, font or image files.
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 |
|---|---|
| 84 | Active |
| 83 | Active |
| 82 | Active |
| 81 | Rejected |
| 80 | Active |
| 79 | Active |
| 78 | Active |
| 77 | Active |
| 76 | Active |
| 75 | Active |
| 74 | Rejected |
| 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.