Hold a key and speak. Offline dictation, text arrives as you talk. Hold the shortcut (Super+X by default), speak, release: the words are typed in the text field under your cursor while you talk, block by block, with a grey live preview. A quick tap keeps listening hands-free (tap again, Escape or a few seconds of silence stop it). A small pill next to the cursor shows the microphone level and the live text. Everything runs on your computer, offline: French, English and 23 other European languages are recognised with punctuation (Parakeet TDT 0.6B v3 through sherpa-onnx). No account, no network, no cloud. An optional local LLM (Ollama) can polish each block; it is off by default. Requires the separate voice-hold-engine helper (Python, GPL, one command to install, ~650 MB of models downloaded by you) and PipeWire; nothing works without it. The settings page shows the install command, with a button that copies it to the clipboard, and the engine status. Wayland only; applications must use the GNOME input method (GTK, Qt, Electron with Wayland; terminals get the text without the preview).
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 0.3 (2) | Unreviewed |
| 0.2 (1) | Rejected |
Author note for 0.3 (changes since 0.2, review #77756): - New "Installation" page in the preferences window. It replaces the terminal commands previously documented in the README: the user clicks "Install" and the preferences process downloads the engine wheels and the speech models with libsoup 3, verifies every file against a SHA-256 published in a manifest (https://github.com/d101c/hold-setup/blob/master/manifest.json), extracts them with libgnome-autoar into ~/.local/share/hold and ~/.local/share/voice-hold, and writes the user D-Bus service file (~/.local/share/dbus-1/services/org.griffit.VoiceHold.service). Everything runs in the prefs (GTK) process only; no subprocess is spawned anywhere, the gnome-shell part of the extension is unchanged apart from the version-name. - New files: setup.js (download / checksum / extraction / service file logic) and setupPage.js (the Adw.PreferencesPage). The page is shown first only while the engine is not installed. - prefs.js: the "Engine" group now links to the Installation page instead of listing shell commands. As before, the engine is a separate Python D-Bus service (speech recognition stays fully offline); the extension itself only talks to it over the session bus. Development was assisted by an AI coding tool, reviewed and tested by me on GNOME 50.