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

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
What changed in v58 compared to v56 Three fixes, no new features, no new settings, no UI changes. # 1. Alarm could be missed after the computer wakes from sleep Before: the extension checked the current time every second and compared it to the alarm time. If the computer was suspended exactly during that minute, the check never ran, so the alarm never fired that day. Now: the extension also compares the alarm time against the last time it checked. If the target time falls between the last check and now, it fires the alarm. This covers the case where the system was asleep right through the alarm time and only wakes up afterward. # 2. Preview font in the settings window was never updated after install The settings window installs a copy of the font in the user's local fonts folder so the live preview looks right. Before, this copy was only made once — if a future version of the extension shipped an updated font file, the old copy on disk would stay forever, since the code only checked "does the file exist," not "is it the current one." Now it compares file size and modification date between the bundled font and the installed copy, and only re-copies when they differ. #3. Alarm sound no longer depends on GStreamer The alarm used to call `Gst.init()` and build a full `playbin` pipeline just to play a short `.ogg` file, pulling in a GStreamer dependency for something very small. The alarm now plays through `global.display.get_sound_player().play_from_file()`, the sound player built into GNOME Shell / Mutter, the same mechanism GNOME Shell itself uses for its screenshot sound. No external dependency, no spawned process. ## Files touched (vs v56) - `extension.js` - `prefs.js` `assets/alarm.ogg` is unchanged from v56. ## A note on why the sound testing took a while (in plain terms) During review, testing `global.display.get_sound_player()` produced no audio at all, and it wasn't obvious why, since the code looked correct and matched what GNOME Shell itself does. A few things were tried along the way, including briefly swapping the alarm sound to `.wav` and, at one point, playing the sound through a spawned system command instead of the native API, thinking the issue might be about audio format or GStreamer availability. It turned out to be neither. The real cause was a local setting on the test machine: system event sounds were turned off (`org.gnome.desktop.sound event-sounds` was set to false), which silently blocks libcanberra, the library GNOME Shell's sound player relies on. This wasn't specific to this extension — GNOME Shell's own screenshot sound was silent on the same machine, for the same reason. Once that setting was turned back on, the alarm sound played correctly with the original approach and the original `.ogg` file, exactly as it should. Everything has been reverted back to that straightforward, dependency-free approach.
Corral1976 posted a review
Update: found it, and confirmed the sound now works. It was a local libcanberra configuration issue on my test machine, unrelated to the extension. Running `canberra-gtk-play` directly (no GNOME Shell involved at all) returned "Failed to play sound: Sound disabled", which is libcanberra's own error for event sounds being turned off at the system level (`org.gnome.desktop.sound event-sounds` was set to false). That's also why GNOME Shell's own screenshot sound wasn't playing on this machine either, same as I described earlier. After enabling it with `gsettings set org.gnome.desktop.sound event-sounds true`, the alarm sound now plays correctly through `global.display.get_sound_player().play_from_file()`. So the implementation you pointed me to was correct all along, my test setup just had sound events disabled. Attaching v58 with the extension using this API as intended, no spawned processes, alarm.ogg unchanged from the original. Thanks for your patience and for pointing me in the right direction.
JustPerfection active
Thanks!