sensor — by Filament
Voice dictation for Linux that actually works on GNOME Wayland. Runs entirely on your machine. Installs with one command — and removes just as cleanly.
$ curl -fsSL https://sensor.filamentplatform.com/install.sh | sh
Ubuntu 24.04 and Debian, x86-64 · Read the script first · or download the .deb
The script only downloads the package and hands it to apt —
apt does the installing, which is what lets apt undo it.
Dictation on Linux is a graveyard of half-working projects. Not because
transcription is hard — that problem is solved — but because the last
mile isn't. Every alternative is a git clone, a Python
environment, and a list of manual sudo steps that ends with
"now edit your udev rules."
And most of them don't run on GNOME Wayland at all, which is the default desktop on the most popular Linux distribution.
sensor is the same transcription everyone else uses, packaged like software you'd actually install.
And X11, KDE, and a bare tty. Reads input below the compositor, so there's no desktop it doesn't support.
Key release to text on a laptop with no GPU. The model stays warm in a daemon.
Transcription is on-device. The daemon runs with no network namespace at all — it cannot transmit.
A window with the on/off switch, your microphone, and the last few things it heard. Nothing hidden.
One command removes every file, rule, and group change. Including the ones the installer made.
sensor reads every keystroke and can synthesise keystrokes. That's inherent to any global-hotkey tool on Linux, and you deserve to know exactly what it does before you install it.
| Path or change | What for |
|---|---|
| /usr/bin/sensord /usr/bin/sensorctl | The daemon and the CLI. |
| /usr/lib/udev/rules.d/ | Grants the input and uinput groups access to the device nodes. |
| /usr/lib/modules-load.d/ | Loads the uinput kernel module at boot. |
| /usr/lib/systemd/user/ | Runs the daemon as you, never as root. |
| group membership | Adds you to input and uinput. Recorded, so removal reverses only what was added. |
| ~/.local/share/sensor/ | The speech model, downloaded once (~75MB). |
| ~/.config/sensor/config | Your settings. |
Why device-level access at all: Wayland deliberately forbids
applications from reading global keys or injecting keystrokes, and the
protocol that some tools use for it is refused by GNOME. Reading
/dev/input and writing /dev/uinput sits below
the compositor, which is why it works everywhere.
$ sudo apt purge sensor
Removes the binaries, the udev rule, the systemd unit, the model, your settings, and the group memberships the installer added. Nothing is left behind.
This is listed as prominently as the install because it should be. A tool that reads your keystrokes should be cheap to walk away from — that's what makes it reasonable to try in the first place.
Hold Right Alt + ., speak, release.
A chord rather than a single key, because single keys are all taken: a lone modifier gets grabbed by browsers, and a lone ordinary key steals a character from whatever you're typing. This one collides with nothing and is still a one-handed press.
Everything is in the settings window — hotkey, microphone, on/off, and what it just heard. Open sensor from your applications.
sensorctl setup — download the model, enable the daemonsensorctl keys — bind any key or chord by pressing itsensorctl doctor — check what's working and what isn't