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
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 8 | Active |
| 7 | Inactive |
| 6 | Rejected |
| 5 | Rejected |
| 4 | Rejected |
| 3 | Inactive |
| 2 | Rejected |
| 1 | Rejected |
I have addressed all the review comments from the previous rejection: 1. Soup.Session Management * Created session once in APIClient constructor instead of per-request * Added destroy() method that calls abort() on the session * Called destroy() in extension's disable() method for proper cleanup 2. Timeout ID Management * Replaced single this._timeoutId with separate, descriptive properties: - _scheduleTimeoutId - Main theme switch scheduling - _apiRetryTimeoutId - API retry when fetch fails - _resumeTimeoutId - System resume handler * Each timeout now has clear purpose and proper cleanup 3. Try-Catch Blocks * Removed unnecessary try-catch blocks from setup methods and disable cleanup * Errors now show proper backtraces in logs for easier debugging * Only kept try-catch where genuinely needed for error recovery 4. Minimal Entry Point * Refactored to separate concerns: - extension.js - Minimal entry point (51 lines, down from 529) - extensionController.js - All extension logic moved here * Entry point now only handles: - Creating controller instance - Exporting DBus interface - Delegating method calls to controller
The session mode reason should be in `extension.js` not `extensionController.js`