AI-powered voice-to-text dictation for GNOME. Requires the openwispr companion engine service for recording/transcription. Uses clipboard copy/paste for output (optional auto-paste). Optional remote STT/LLM requests are sent only to user-configured providers.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
1. Remove the version from import (line 2 `prefs.js`). 2. You shouldn't call functions in global scope (line 13-17 `extension.js`): [EGO Review Guidelines: Initialization](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#only-use-initialization-for-static-resources) 3. The default class in `extension.js` is too large. Didn't review for cleanup. Move everything to another class and only hold the instance in the default class. 4. There are too many subprocess here, you should move all of them out of this extension and use d-bus to communicate: [D-Bus Guide](https://gjs.guide/guides/gio/dbus.html) 5. Standalone gjs script files should start with `#!@GJS@ -m`. But the `scripts/record_audio.js` should go. It is not a good idea since it can lead to dangling instances after disable. I highly recommend to use a dependency and use d-bus to communicate. 6. Using curl with spawn command isn't allowed since we have have soup: [GJS Docs: Soup](https://gjs-docs.gnome.org/soup30~3.0/) 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
7. Also, please remove `schemas/gschemas.compiled`. Not needed for 45+ packages.
Thanks for the review! I tried to address the issues you mentioned and refactored the extension quite a bit. It mostly depends on external services now, being a thin wrapper