Review of "GNOME Speech2Text" version 1.0.0 (5)

Details Page Preview

This extension adds speech to text (dictation) to the GNOME Shell using OpenAI’s Whisper automatic speech recognition model. The extension captures audio, runs transcription locally, and copies the transcribed text into your clipboard. It requires installing a companion D-Bus service (installer included). This extension accesses the clipboard to copy transcribed text.

Extension Homepage
https://github.com/kavehtehrani/gnome-speech2text/

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
1.1 (8) Unreviewed
1.0.4 (7) Active
1.0.0 (6) Active
1.0.0 (5) Rejected
1.0.0 (4) Rejected
1.0.0 (3) Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

kwar13 posted a review
I made the changes based on the last review. The main changes are: 1- Breaking down `extension.js` to smaller chunks to make review process easier. 2- Changing the dbus installation script `install-service.sh` so that it's distro agnostic. It checks whether the user has required packages installed but does not install any, hence no need for `sudo`. It also provides a manual installation route by providing the link to project's github if the user so desires. I have tested this on Fedora (Adam), Ubuntu 25.04 and Ubuntu 24.04. Thanks again for your awesome reviews, Kaveh
JustPerfection rejected
1. Schema should starts with `org.gnome.shell.extensions.`: [EGO Review Guidelines: GSettings Schemas](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#gsettings-schemas) 2. Avoid using unnecessary catch blocks and comments. 3. Better to use `this.` instead of `super.` (line 26 `extension.js`) since `getSettings()` hasn't been overridden. 4. Bad practice (line 56 `extension.js`). Enable shouldn't disable the extension. 5. Tracking extension with `this.isEnabled` in `extension.js` is a bad practice. That shouldn't be there and your extension shouldn't do anything after disable. That's why we want a full cleanup in disable. 6. Timeout should be removed on destroy (line 377 `lib/dbusManager.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources) 7. What's the reason for checking the first run there exactly (line 22 `lib/setupDialog.js`)? Is it just because the extension not cleaning up after disable? 8. Timeout should be removed before creating a new one (line 314, 608 `lib/recordingDialog.js`). 9. `Close` is creating a timeout which is getting created on disable! (line 744 `lib/recordingDialog.js`). That's against the rules since disable should remove all timeouts. 10. Don't use old imports: - line 25 `lib/uiUtils.js` - line 727 `lib/recordingDialog.js` 11. Recommendation: I recommend to move the `install-service.sh` out of the extension if that's possible. While it is reduced, still seems to be too much for an extension as we really want to stay away from spawn commands and too much scripts in extensions. Maybe a good solution would be linking to an installation manual on git repo. That way it doesn't need the script in the package.