Skip to main content

System Requirements

OpenWhispr supports most modern Linux distributions with X11 or Wayland display servers.

Hardware Requirements

  • Processor: x64 (64-bit)
  • RAM: 4GB minimum (8GB recommended for local transcription)
  • Disk Space: 500MB for app + up to 3GB for local Whisper models

Tested Distributions

  • Ubuntu 20.04+ / Linux Mint / Pop!_OS
  • Debian 11+
  • Fedora 36+
  • Arch Linux / Manjaro
  • openSUSE Leap / Tumbleweed
  • GNOME, KDE Plasma, Sway, Hyprland desktop environments

Software Requirements

  • Node.js 18+ (for building from source)
  • GCC and development libraries (for compiling native binaries)

Installation Methods

OpenWhispr provides multiple package formats for maximum compatibility:
1

Download the .deb package

Download from GitHub Releases:
wget https://github.com/OpenWhispr/openwhispr/releases/download/v1.5.5/OpenWhispr-1.5.5-linux-x64.deb
2

Install with apt

sudo apt install ./OpenWhispr-1.5.5-linux-x64.deb
This automatically installs recommended dependencies:
  • ydotool (required for Wayland paste)
  • xdotool (suggested for X11 paste)
  • wtype (suggested for Wayland paste)
  • wl-clipboard (recommended for Wayland clipboard)
3

Launch OpenWhispr

open-whispr
Or find it in your application menu.

Clipboard Paste Tools

OpenWhispr requires at least one paste tool for automatic text insertion. The app tries methods in this order:

Native Binary (Primary Method)

OpenWhispr includes a native C binary (linux-fast-paste) that handles clipboard pasting on both X11 and Wayland.
How it works:
  • X11: Uses XTest extension to synthesize Ctrl+V keystrokes directly
  • Wayland (uinput): Creates a virtual keyboard via Linux uinput subsystem
  • Wayland (portal): Uses RemoteDesktop D-Bus portal on GNOME/KDE for native window targeting
  • Terminal detection: Automatically detects 20+ terminal emulators and uses Ctrl+Shift+V
#include <X11/extensions/XTest.h>

Display *dpy = XOpenDisplay(NULL);

// Press Ctrl
XTestFakeKeyEvent(dpy, XKeysymToKeycode(dpy, XK_Control_L), True, 0);

// Press V
XTestFakeKeyEvent(dpy, XKeysymToKeycode(dpy, XK_v), True, 0);
XTestFakeKeyEvent(dpy, XKeysymToKeycode(dpy, XK_v), False, 0);

// Release Ctrl
XTestFakeKeyEvent(dpy, XKeysymToKeycode(dpy, XK_Control_L), False, 0);

XFlush(dpy);
Compilation (automatic during build):
npm run compile:linux-paste
Detected terminals (auto-uses Ctrl+Shift+V):
  • gnome-terminal, konsole, kitty, alacritty, wezterm, foot
  • terminator, tilix, xterm, urxvt, st, yakuake
  • guake, tilda, hyper, tabby, sakura, warp
  • termius, ghostty

Fallback Tools (External Dependencies)

If the native binary fails, OpenWhispr falls back to system tools in this order:
xdotool (recommended):
# Debian/Ubuntu
sudo apt install xdotool

# Fedora/RHEL
sudo dnf install xdotool

# Arch
sudo pacman -S xdotool
xdotool is the primary fallback for X11. It’s reliable and widely supported.
DesktopRecommended ToolsFallback
X11 (GNOME, KDE, XFCE)xdotoolNative linux-fast-paste
GNOME WaylandNative linux-fast-paste --portalydotool + ydotoold
KDE WaylandNative linux-fast-paste --portalydotool + ydotoold
Sway / HyprlandwtypeNative linux-fast-paste --uinput
XWayland appsxdotoolNative linux-fast-paste (XTest)

Clipboard Sharing (Wayland)

Install wl-clipboard for reliable clipboard sharing between Wayland apps:
# Debian/Ubuntu
sudo apt install wl-clipboard

# Fedora/RHEL
sudo dnf install wl-clipboard

# Arch
sudo pacman -S wl-clipboard

GNOME Wayland Global Shortcuts

On GNOME Wayland, Electron’s globalShortcut API doesn’t work. OpenWhispr uses native GNOME shortcuts via D-Bus.

How It Works

  1. OpenWhispr creates a D-Bus service at com.openwhispr.App
  2. Registers a custom GNOME keybinding via gsettings
  3. GNOME triggers dbus-send command when hotkey is pressed
  4. D-Bus service calls the Toggle() method, starting/stopping recording
const { MessageBus } = require('dbus-next');

class GnomeShortcutManager {
  async initDBusService(callback) {
    this.bus = MessageBus.connectSession();
    
    // Register D-Bus interface
    const iface = {
      name: 'com.openwhispr.App',
      methods: {
        Toggle: {
          inSignature: '',
          outSignature: '',
          fn: () => {
            callback();  // Trigger recording
          }
        }
      }
    };
    
    await this.bus.export('/com/openwhispr/App', iface);
    await this.bus.requestName('com.openwhispr.App');
  }
}

Limitations

Push-to-talk mode is NOT available on GNOME Wayland. GNOME shortcuts only fire a single toggle event (no key-up detection).
The app automatically uses tap-to-talk mode on GNOME Wayland.

Hotkey Format Conversion

Electron FormatGNOME Format
Alt+R<Alt>r
Control+Shift+Space<Control><Shift>space
CommandOrControl+K<Control>k
Backtick (`)grave

Viewing Registered Shortcuts

Your OpenWhispr hotkey appears in: GNOME SettingsKeyboardKeyboard ShortcutsCustom Shortcuts You can modify or remove it there (the app will re-register on next launch).

Troubleshooting

Cause: Missing paste tools or daemon not running.Solution:For X11:
sudo apt install xdotool  # Debian/Ubuntu
sudo dnf install xdotool  # Fedora
For GNOME/KDE Wayland:
sudo apt install ydotool
sudo systemctl enable --now ydotoold
sudo systemctl status ydotoold  # Verify it's running
For Sway/Hyprland:
sudo apt install wtype
Manual paste: Use Ctrl+V (text is always copied to clipboard).
Cause: ydotoold daemon not running.Solution:
# Check daemon status
systemctl status ydotoold

# Start daemon
sudo systemctl start ydotoold

# Enable on boot
sudo systemctl enable ydotoold

# Manual start (alternative)
sudo ydotoold &
Check socket:
ls -la /run/user/$(id -u)/.ydotool_socket
Cause: D-Bus service failed to register or gsettings conflict.Check D-Bus service:
dbus-send --session --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListNames | grep openwhispr
Check registered shortcut:
gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/openwhispr/ binding
Reset shortcut:
gsettings reset org.gnome.settings-daemon.plugins.media-keys custom-keybindings
Then restart OpenWhispr.
Cause: Terminal not detected by window class.Check window class:
xdotool getactivewindow getwindowclassname
Solution: Report the terminal name in GitHub Issues to add it to the detection list.Workaround: Manually paste with Ctrl+Shift+V.
Cause: Missing X11 or uinput development headers.Solution:Debian/Ubuntu:
sudo apt install gcc libx11-dev libxtst-dev
Fedora/RHEL:
sudo dnf install gcc libX11-devel libXtst-devel
Arch:
sudo pacman -S gcc libx11 libxtst
Then rebuild:
npm run compile:linux-paste
Solution:PulseAudio:
pavucontrol  # Graphical volume control
pactl list sources  # List input devices
PipeWire:
pw-top  # Monitor audio devices
wpctl status  # List devices
Select the correct input device in your desktop sound settings.
Solution: Change the hotkey in Settings → Hotkeys.Suggested alternatives:
  • Control+Super (default, may conflict on some DEs)
  • Control+Shift+K
  • Super+Shift+R
  • F8 or F9
Avoid: Super key combinations on GNOME/KDE (often reserved for desktop actions).
Check disk space: Models range from 75MB to 3GB.Models location: ~/.cache/openwhispr/whisper-models/Manual cleanup:
rm -rf ~/.cache/openwhispr/whisper-models
Or use in-app: Settings → General → Remove Downloaded Models
Cause: User lacks write access to /dev/uinput.Solution:Temporary fix:
sudo chmod 666 /dev/uinput
Permanent fix (add user to input group):
sudo usermod -a -G input $USER
Log out and back in for changes to take effect.udev rule (alternative):
echo 'KERNEL=="uinput", MODE="0660", GROUP="input"' | sudo tee /etc/udev/rules.d/99-uinput.rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Performance Optimization

Local Transcription Performance

Recommended model: base - Best balance of speed and accuracy (~142MB)
Model comparison:
  • tiny: ~75MB, fastest, lowest quality
  • base: ~142MB, recommended balance ⭐
  • small: ~466MB, better quality
  • medium: ~1.5GB, high quality
  • large: ~3GB, best quality
  • turbo: ~1.6GB, fast with good quality

GPU Acceleration

For NVIDIA GPUs, build whisper.cpp with CUDA support:
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make WHISPER_CUDA=1
Replace the bundled binary in resources/bin/whisper-cpp-linux-x64.

Uninstallation

sudo apt remove openwhispr
The post-remove script automatically cleans up:
  • ~/.cache/openwhispr/whisper-models
  • Application shortcuts
Remove app data:
rm -rf ~/.config/OpenWhispr
rm -rf ~/.local/share/OpenWhispr

Next Steps

Configure Settings

Set up API keys, choose models, and customize hotkeys

Choose Processing Method

Compare local vs cloud transcription options

Troubleshooting Guide

Solutions for common Linux issues

Keyboard Shortcuts

Master hotkeys and activation modes

Build docs developers (and LLMs) love