I’ve been using OpenWhispr as my dictation app on Fedora (GNOME, Wayland). It’s genuinely good, but on Linux the defaults have a few rough edges: the UI scrolls like it’s underwater, and the push-to-talk “Hold” mode doesn’t work out of the box. Here’s the setup that made it feel native.
The scroll lag: why it happens
OpenWhispr forces software rendering on Linux — it launches itself with --disable-gpu-compositing to avoid transparent-window flicker. The side effect is that every scroll frame gets painted on the CPU, which stutters badly even on fast hardware.
You can confirm it: run ps -ef | grep open-whispr and look for --disable-gpu-compositing in the process arguments. If it’s there, that’s your lag.
The fix is removing that one switch from the app’s bundle (it lives inside resources/app.asar) — or using a build where upstream has made it conditional. Once it’s gone, scrolling is smooth.
Hold mode (push-to-talk)
On Linux, Hold needs raw keyboard access. Without it, the app quietly falls back to Tap mode:
sudo usermod -aG input $USER
Then log out and back in — group changes only apply to new sessions. After that, Hold is selectable in Settings → Hotkeys → Activation Mode, and it actually works: hold the key, speak, release, and the text appears.
Pick a hotkey that GNOME will accept
Some keys can’t be grabbed globally on GNOME — plain Escape never registers. Good choices: Ctrl+Shift+Space, F8/F9, or a dedicated key. I use the Copilot key on my keyboard (it shows up as Super+Shift+F23).
Wayland or X11?
The app runs under XWayland by default because its floating dictation overlay needs X11 for cursor positioning. If you prefer native Wayland, you can switch via ~/.config/open-whispr-flags.conf (one line: --ozone-platform=wayland) — but the overlay then shows up as a plain window. The best combo I found: default X11 mode + the scroll fix above.
One small known quirk
Activation Mode can display as “Tap” after a restart even when you saved “Hold” — the app rewrites the setting at startup before your hotkey loads. Hold still behaves correctly; it’s a state-sync issue that’s reported upstream.
The end result: smooth scrolling, working hold-to-talk, and dictation that pastes anywhere. If you’re on Fedora/GNOME and bouncing off the app, this is the setup that makes it stick.
