PowerToys Text Extractor equivalent for GNOME. Select an area of the screen and copy its text with OCR (Tesseract), in any language Tesseract supports. Requires Tesseract OCR to be installed. Clipboard access: it only writes the extracted text.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 1.1.3 (6) | Unreviewed |
| 1.1.2 (5) | Active |
| 1.1.0 (4) | Active |
| 1.1.0 (3) | Rejected |
| 1.0.0 (2) | Rejected |
| 1.0.0 (1) | Rejected |
1. Please remove `48.2` from shell versions. not needed. 2. Remove `stylesheet.css` since you are not using it: [EGO Review Guidelines: unnecessary files](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#don-t-include-unnecessary-files) 3. Please don't store any instance of objects in a property of the default class you are exporting (`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) You can clean up on: ```js window.connect('close-request', () => { // clean up here }); ``` 4. Remove the unnecessary try catch block from enable and disable. 5. Don't use sync spawn since that can freeze the shell process (line 187 and 196 `extension.js`): [GJS Guide: Subprocesses](https://gjs.guide/guides/gio/subprocesses.html#complete-examples) 6. You already have access to both screenshot and clipboard. No need to use spawn commands for that: - [St.Clipboard](https://gjs-docs.gnome.org/st16~16/st.clipboard) - [Port Guide 45: Screenshot](https://gjs.guide/extensions/upgrading/gnome-shell-42.html#screenshot) 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
Hi, thanks for the review. I've addressed all six points in the latest version: 1. Removed `48.2`; the `shell-version` field now lists versions 45–50. 2. Removed the unused `stylesheet.css` file. 3. `prefs.js` no longer stores widget references on the exported class. State is kept in a closure and is released on `close-request`. 4. Removed the `try/catch` blocks from `enable()` and `disable()`. 5. There are no synchronous subprocesses. The only subprocess is `tesseract`, which is launched asynchronously using `Gio.Subprocess` with `communicate_utf8_async`. There is no JavaScript OCR library that can be used as a replacement. 6. Clipboard access uses `St.Clipboard`, and screenshots are captured with `Main.screenshotUI`. No external screenshot or clipboard utilities are used, and the required clipboard access is declared in the extension description. The Shexli checker now reports no errors or warnings. The only remaining note is the expected manual review for the declared clipboard access. Thanks again for your time and feedback.