A keyboard driven window management tool.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 2 | Unreviewed |
| 1 | Rejected |
Is this code generated by AI? If so, we have a rule for that: [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated)
Hello @JustPerfection. Thank you for reviewing my extension. To clarify: the core functionality of the extension was not AI-generated. The AI-assisted code is limited to the preferences UI (prefs.js), which handles the settings interface as I don't have much experience with UI development. The main extension logic in extension.js (the actual launcher functionality, keybindings, window management, etc.) was written by me without AI assistance. You can review the code here: https://github.com/luic7/Glaunch If this violates the EGO guidelines, I'm happy to rewrite the preferences page manually or discuss what changes are needed for approval.
Please let me know what your thoughts are on this and I would be happy to make any changes. It's my first extension and I'm excited to share with the gnome community.
I'll review this one tomorrow since it's pretty late here. Until then 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
1. Please remove `schemas/gschemas.compiled`. Not needed for 45+ packages. 2. Please add GitHub or GitLab url to the `metadata.json`: [EGO Review Guidelines: url](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#metadata-json-must-be-well-formed) 3. Please don't store any instance of objects in a property in the default class you are exporting (line 14 `prefs.js`) that won't allow the garbage collector to do its job after window close: [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) If you don't want to make it local to `fillPreferencesWindow()` function, you can clean up on: ```js window.connect('close-request', () => { // clean up here }); ``` 4. Use white spaces between function names and classes. 5. Extensions cannot use `run_dispose()` (line 89 `extension.js`): [EGO Review Guidelines: run_dispose](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-should-not-force-dispose-a-gobject) 6. Use `connectObject()` and `disconnectObject()` for easier cleanups. 7. Each class binding keys, that should remove the binding on destroy. It's not a good practice to bind in one file and remove on other. You can also add `donations` to the `metadata.json`, so people can donate to you if they want: [Extension Anatomy: donations](https://gjs.guide/extensions/overview/anatomy.html#donations) 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