Review of "Automatic Theme Switcher" version 2

Details Page Preview

Automatically switches between light and dark themes based on sunrise/sunset times for your location. Supports multiple trigger options (golden hour, dawn, dusk, etc.), gradual brightness transitions, and syncs with Night Light. Uses ipinfo.io, sunrisesunset.io, and openstreetmap.org services. If you find any bugs/issues, feel free to create an issue at https://github.com/amritashan/gnome-shell-extension-auto-theme-switcher/issues

Extension Homepage
https://github.com/amritashan/gnome-shell-extension-auto-theme-switcher

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Version Status
8 Active
7 Inactive
6 Rejected
5 Rejected
4 Rejected
3 Inactive
2 Rejected
1 Rejected

Previous Reviews on this Version

JustPerfection rejected
1. #1 from previous review hasn't been addressed here. 2. Timeout should be removed on disable and also before creating a new one (line 165 `extension.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 3. Don't use sync spawn since that can freeze the shell process (line 817 `extension.js`): [GJS Guide: Subprocesses](https://gjs.guide/guides/gio/subprocesses.html#complete-examples) 4. You forgot to null out `this.settings` on close request in `prefs.js`. Please avoid sending large diff. It takes more time to review and makes the review process harder.
amritashan posted a review
Thank you for the detailed review! I've addressed all four points in the latest submission: 1. gschemas.compiled Removed Issue: schemas/gschemas.compiled was being included in the package. Fix: Removed the glib-compile-schemas command from the package build script (package.sh). The package now contains only the source .gschema.xml file. The compiled schema is not included and will be generated automatically by GNOME 45+ during installation. You can verify: The zip now contains only schemas/org.gnome.shell.extensions.auto-theme-switcher.gschema.xml with no gschemas.compiled file. 2. Timeout Management (Line 165) Issue: Resume timeout at line 165 wasn't being stored or cleaned up in disable(). Fix: The timeout is now stored in this._resumeTimeoutId * Existing timeout is cleared before creating a new one * Added cleanup in disable() method to remove the timeout * Reference: extension.js:165-176, 220-223 3. Async Subprocess (Line 817) Issue: Using GLib.spawn_command_line_sync() which can freeze the shell. Fix: * Replaced with async Gio.Subprocess implementation * Created _checkCommandAvailable() helper function using wait_check_async() * Made _scheduleBrightnessUpdates() async to support the new implementation Reference: extension.js:813-830 4. Null Out this.settings in prefs.js Issue: this.settings wasn't being nulled in the close-request handler. Fix: Added this.settings = null to the close-request handler for proper garbage collection. Reference: prefs.js:1213 All changes have been tested locally and the extension is working correctly without errors. Sorry about the large diff in the last one. I had already started working on a new feature. This diff, however, is focused and addresses only the specific issues raised. Thank you for your patience!