Review of "Screensavers" version 0.2.4 (2)

Details Page Preview

Run classic X11 screensavers on GNOME Wayland, shown over the lock screen until the screen blanks. Made for a love of Flurry, the screensaver from macOS: XScreenSaver's port of the original Flurry is the default, and any of its roughly 250 other screensavers (or your own program) can run instead. The X11 savers run unmodified through Xwayland and never receive input; a key press or click stops them and shows the unlock prompt. Requires the xscreensaver package (only its screensaver programs are used, not its daemon). Runs in the unlock-dialog session mode because the lock screen is where the screensaver is shown.

Extension Homepage
https://github.com/Yofuness/gnome-screensavers

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

Shexli found 1 issue that may need reviewer attention.

EGO-M-004 error

metadata shell-version must only include plausible stable releases and at most one development release

Field `shell-version` contains invalid values, more than one development release, or implausible future releases.

metadata.json must be well-formed

  • metadata.json
    shell-version=['51']

All Versions

Version Status
0.2.4 (2) Unreviewed
0.2.2 (1) Rejected

Previous Reviews on this Version

yofuness posted a review
Why unlock-dialog: the extension's purpose is to show a screensaver over the lock screen, so it must stay enabled while locked. The unlock dialog keeps all password input; the extension only detects a key press or click to dismiss the screensaver, and forwards media keys to the active MPRIS player. Hi, some notes on how this extension works: Subprocesses: the screensavers are the user's installed XScreenSaver programs (or commands the user adds), started with Gio.Subprocess, one per monitor, and shown via Clutter.Clone of their windows. They receive no input. On dismiss, unlock or disable they get SIGTERM, then are force-killed after 1.5 s (immediately on disable). Private API: wraps ScreenShield._activateFade with InjectionManager to show the screensaver instead of the fade-to-black, then calls the original when the run time ends. Uses _shortLightbox and _maybeCancelDialog to do the same when the screensaver returns after being dismissed. There is no public hook for this. Tested on GNOME Shell 51.0; I'll re-test each release. Disk writes: a run history at ~/.local/share/screensavers@yofuness.github.io/history.jsonl, size-capped, which can be turned off and cleared in preferences. No network access. shell-version 51: the current stable release, tested on 51.0. The Shexli M-004 flag appears to use an outdated version list. Written with substantial AI assistance. It's linted with GNOME's recommended ESLint config and has an end-to-end test suite; I've tested it on my own system and intend to maintain it.