Review of "Desk Changer" version 26

Details Page Preview

Simple wallpaper changer with multiple profile support. Integrates into the shell by providing it's own panel icon. The daemon is written using gjs and runs independently of the extension as a background process.

Extension Homepage
https://github.com/BigE/desk-changer/

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
26 Rejected
25 Active
24 Inactive
23 Inactive
22 Inactive
21 Rejected
20 Rejected
19 Inactive
18 Inactive
17 Active
16 Active
15 Active
14 Active
13 Active
12 Active
11 Active
10 Active
9 Active
8 Active
7 Active
6 Active
5 Rejected
4 Active
3 Active
2 Rejected
1 Active

Previous Reviews on this Version

JustPerfection rejected
1. Don't store any instance of objects in the default class you are exporting (line 15 `prefs.js`) since that cannot get garbage collected after window close: [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) 2. Please remove line 5 `_deskchanger.js`. Not needed. 3. What is `window` in an extension (line 54 `_deskchanger.js`)? 4. You should null it out on disable (line 56 `_deskchanger.js`). 5. Please don't use deprecated modules and old `imports`: - line 3, 64, 289 `_deskchanger.js` - line 3 `convenience.js` - line 352 `daemon/server.js` [EGO Review Guidelines: deprecated modules](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#do-not-use-deprecated-modules) 6. Don't create any instance of objects in the global scope and also don't call any functions or methods in global scope: - line 125, 273, 278, 298-311 `_deskchanger.js` - line 10-16, 35-40 `deskchanger.js` - line 65-134 `common/rotation.js` - line 9 `common/settings.js` - line 9, 19-21 `daemon/interface.js` - line 352 `daemon/server.js` - [EGO Review Guidelines: Initialization](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-initialization-for-static-resources) - [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) 7. Don't need to bind gettext domains in 45: > Consider this method deprecated. > Only specify gettext-domain in metadata.json. > GNOME Shell can automatically initiate the translation for you > when it sees the gettext-domain key in metadata.json. - line 132-134 `_deskchanger.js` [Port Guide 45: Extension Utils](https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extensionutils) 8. Where do you use these files? - `_deskchanger.js` - `daemon/server.js` 9. You cannot import `Gtk` or `Adw` to the GNOME Shell process: - line 20 `deskchanger.js` - line 2 `ui/profiles.js` - line 1 `ui/common/location_row.js` [EGO Review Guidelines: import](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#do-not-import-gtk-libraries-in-gnome-shell) 10. Don't store anything as static if you are not going to destroy and null out on disable or prefs's window close: [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) 11. You can send `this.getSettings()` from the entry point to the `DeskChangerSettings()` (line 14 `common/settings.js`). It's much better than creating your own gsettings class. 12. Don't use `var`. Use `let` and `const` instead. Use `export class` when you want to export class. 13. What's the reason for line 38 and 39 `daemon/server.js`? Isn't line 39 enough? 14. Please don't use version in the imports (for example, line 2 `ui/profiles.js`). Please fix it in other files and lines too. 15. Can you please explain about the `ui` folder? I understand about `ui/prefs` only loads in prefs but where exactly the other files in `ui` folder getting loaded?