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

Details Page Preview

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.

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) warning 1

Shexli found 1 issue that may need reviewer attention.

EGO015 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:106
                this._indicator.connect('button-press-event', (actor, event) => {
                    if (this._isAlarming) {
                        this._stopAlarm();
                        return Clutter.EVENT_STOP;
                    }
                    if (event.get_button() === 1) {
                        dragging =
  • extension.js:151
                this._indicator.connect('button-press-event', () => {
                    if (this._isAlarming) {
                        this._stopAlarm();
                        return Clutter.EVENT_STOP;
                    } else {
                        this.openPreferences();
                        return Clutter.EVEN
  • extension.js:126
                this._indicator.connect('button-release-event', () => {
                    if (dragging) {
                        dragging = false;
                        let [x, y] = this._indicator.get_position();
                        this._settings.set_int('widget-x', x);
                        this._settings.set
  • extension.js:137
                this._indicator.connect('motion-event', (actor, event) => {
                    if (dragging) {
                        let [x, y] = event.get_coords();
                        actor.set_position(x - grabX, y - grabY);
                        return Clutter.EVENT_STOP;
                    }
                    

All Versions

Previous Reviews on this Version

Corral1976 posted a review
Version 36 Update - Quick Fix What's Fixed - **UI Responsiveness**: Toggle switches in preferences now work with a single click (previously needed 2-3 clicks) - **Affected switches**: Widget Mode, Show Date, 24-Hour Format, Show Seconds, Blinking Separators, Enable Alarm Technical Details The issue was caused by recursive GTK switch events. I've added simple state validation to prevent duplicate activations: ```javascript // Now checks state before setting to avoid loops if (w.active !== settings.get_boolean('setting-name')) { settings.set_boolean('setting-name', w.active); } ``` Files Changed - `prefs.js`: Updated 6 switch handlers - `metadata.json`: Version bump to 36 Testing All switches now respond immediately, settings persist correctly, and existing functionality remains intact. --- **Thank you for your time and patience reviewing this extension!** Your work maintaining the GNOME Extensions ecosystem is truly appreciated. This small fix should make the user experience much smoother.
dlandau active