Review of "ClusterCut" version 1.0 (1)

Details Page Preview

Integration for ClusterCut Clipboard Sync. Adds a Quick Settings toggle and reads/writes the system clipboard to enable clipboard sync on Wayland.

Extension Homepage
https://github.com/keithvassallomt/ClusterCut

No comments.

FAQ

Files

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

All Versions

Version Status
2.0 (4) Unreviewed
1.1 (3) Rejected
1.0 (2) Active
1.0 (1) Rejected

Previous Reviews on this Version

JustPerfection rejected
1. Please remove the `.png` file. Not needed. 2. You cannot import `Gtk` and `Gdk` to the GNOME Shell process (line 4-5 `extension.js`): [EGO Review Guidelines: import](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#do-not-import-gtk-libraries-in-gnome-shell) 3. Move line 32 to the `ClusterCutIndicator` class: [EGO Review Guidelines: Initialization](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-initialization-for-static-resources) 4. Avoid create deep blocks. Something like line 102 `extension.js` not really needed to be a block: ```js if (!this._proxy) { return; } ``` 5. Code duplication (line 107-126 `extension.js`). 6. You can simply use subprocess (line 178-188 `extension.js`). but I highly recommend to remove `_tryLaunchApp()` function and let the user be responsible for launching the service. After all, user knows what this is extension using and you are using d-bus for a good reason (not using any subprocess in GNOME Shell process). 7. Use `super.destroy()` instead (line 272 `extension.js`). 8. Remove line 278-296, 309-326 `extension.js`. If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions
Keith Vassallo posted a review
1. Please remove the `.png` file. Not needed. Removed `.png` file. 2. You cannot import `Gtk` and `Gdk` to the GNOME Shell process (line 4-5 `extension.js`): [EGO Review Guidelines: import](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#do-not-import-gtk-libraries-in-gnome-shell) Removed direct `Gtk` and `Gdk` imports. 3. Move line 32 to the `ClusterCutIndicator` class: [EGO Review Guidelines: Initialization](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-initialization-for-static-resources) Moved `ClusterCutProxy` initialization logic to `ClusterCutIndicator` class. 4. Avoid create deep blocks. Something like line 102 `extension.js` not really needed to be a block: ```js if (!this._proxy) { return; } ``` Simplified nested blocks and removed deep guards. 5. Code duplication (line 107-126 `extension.js`). Refactored duplicated state toggling logic. 6. You can simply use subprocess (line 178-188 `extension.js`). but I highly recommend to remove `_tryLaunchApp()` function and let the user be responsible for launching the service. After all, user knows what this is extension using and you are using d-bus for a good reason (not using any subprocess in GNOME Shell process). Removed `_tryLaunchApp()` and `subprocess` logic; extension now gracefully handles app not running state. 7. Use `super.destroy()` instead (line 272 `extension.js`). Fixed `destroy()` implementation to call `super.destroy()`. 8. Remove line 278-296, 309-326 `extension.js`. Cleaned up unused code blocks. Thank you for all the fantastic review work you do!