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.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
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 |
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?