Configuration Guide
October 20, 2025 · View on GitHub
Wispr-Lite configuration is stored in ~/.config/wispr-lite/config.yaml.
Configuration File Structure
# General settings
mode: "dictation" # dictation or command
autostart: false
log_level: "INFO" # DEBUG, INFO, WARNING, ERROR
# Hotkeys
hotkeys:
push_to_talk: "ctrl+space"
toggle: "ctrl+shift+space"
command_mode: ""
undo_last: "ctrl+shift+z"
# Audio settings
audio:
device: null # null = system default, or device index
sample_rate: 16000
channels: 1
frame_duration_ms: 20
vad_mode: 3 # 0-3, higher = more aggressive
vad_silence_timeout_ms: 1000
# ASR settings
asr:
backend: "faster-whisper"
model_size: "base" # tiny, base, small, medium, large
language: null # null = auto-detect, or language code (e.g., "en")
compute_type: "auto" # auto, int8, float16
device: "auto" # auto, cpu, cuda
beam_size: 5
best_of: 5
# Typing/output settings
typing:
strategy: "clipboard" # clipboard or xtest
preserve_clipboard: true
typing_delay_ms: 10
smart_spacing: true
smart_capitalization: true
type_while_speaking: false # Type partial results in real-time (experimental)
# Notification settings
notifications:
enabled: true
respect_dnd: true
show_info: false
show_warnings: true
show_errors: true
show_progress: true
max_toasts_per_minute: 3
per_category_cooldown_sec: 10
enable_sounds: false
sound_volume: 0.5
# UI settings
ui:
show_overlay: true
overlay_transparency: 0.9
theme: "auto" # auto, light, dark
# Command mode
commands:
enabled: true
prefix: "cmd:"
require_confirmation: true
commands:
"open terminal":
action: "launch"
target: "gnome-terminal"
"open browser":
action: "launch"
target: "firefox"
"search":
action: "url"
target: "https://www.google.com/search?q={query}"
Settings Reference
Hotkeys
Hotkey format: modifier+modifier+key
Supported modifiers: ctrl, shift, alt, super
Examples:
ctrl+super(default push-to-talk)ctrl+shift+super(default toggle)ctrl+shift+z(default undo)alt+v
Note: super is the Windows/Command key
Audio
device: Microphone device index ornullfor default- Use the Preferences UI to select from available devices
- Live input level meter shows microphone activity
vad_mode: Voice activity detection aggressiveness (0-3)- 0: Least aggressive (accepts more as speech)
- 3: Most aggressive (strict speech detection)
vad_silence_timeout_ms: Auto-stop after silence in toggle mode
ASR
model_size: Whisper modeltiny: ~75M params, fastestbase: ~125M params, good balance (recommended)small: ~244M paramsmedium: ~769M paramslarge: ~1550M params
language: ISO 639-1 code (en,es,fr, etc.) ornullfor auto-detect- In Preferences UI: Select from dropdown of 16 common languages or "Auto-detect"
- Supported languages include: English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, Korean, Arabic, Hindi, Dutch, Polish, Turkish
compute_type: Quantization typeauto: Selects based on deviceint8: CPU-friendly, smaller memoryfloat16: GPU-friendly, better quality
device: Compute deviceauto: CUDA if available, else CPUcpu: Force CPUcuda: Force CUDA GPU
Typing
strategy:clipboard: Safe, works everywhere, preserves formatting (includes MIME type preservation)xtest: Faster, requires X11, types character-by-character (works in terminals)
preserve_clipboard: Restore clipboard (both CLIPBOARD and PRIMARY selections) after pastesmart_spacing: Automatically add space before new dictation after sentence-ending punctuation (.,!,?)- Example: "First sentence." → [dictate "second sentence"] → "First sentence. Second sentence."
- Enabled by default
smart_capitalization: Automatically capitalize first letter of new dictation- Capitalizes at start of first dictation and after sentences ending with
.,!, or? - Example: "hello world." → [dictate "this is next"] → "hello world. This is next."
- Enabled by default; helps with smaller models that may not capitalize correctly
- Capitalizes at start of first dictation and after sentences ending with
type_while_speaking: Experimental - Type partial transcription results as they arrive- Requires
xteststrategy - Uses delta typing (only types new characters, backspaces corrections)
- Can be distracting but provides immediate feedback
- Final result is corrected if it differs from partials
- Note: Partials are streamed from the ASR engine after recording completes, not in true real-time during capture. The effect is "typing as transcribing" rather than "typing while speaking".
- Requires
Notifications
respect_dnd: Suppress toasts when Do Not Disturb is active- Rate limiting prevents notification spam
max_toasts_per_minute: Global limitper_category_cooldown_sec: Minimum time between same-category toasts
Commands
Command actions:
-
launch: Run an application"open terminal": action: "launch" target: "gnome-terminal" -
url: Open a URL (with optional query substitution)"search": action: "url" target: "https://www.google.com/search?q={query}" -
shell: Run a shell command (requires confirmation)"update system": action: "shell" target: "sudo apt update && sudo apt upgrade -y"
Advanced Configuration
Custom Commands
Add to the commands.commands section:
commands:
commands:
"open music":
action: "launch"
target: "rhythmbox"
"github":
action: "url"
target: "https://github.com"
"volume up":
action: "shell"
target: "pactl set-sink-volume @DEFAULT_SINK@ +5%"
Multiple Microphones
List available devices:
python3 -c "import sounddevice as sd; print(sd.query_devices())"
Set device index in audio.device.
GPU Acceleration
For NVIDIA GPUs with CUDA:
asr:
device: "cuda"
compute_type: "float16"
Ensure CUDA and cuDNN are installed.
Configuration Recipes
High Accuracy Setup (Best Quality)
For maximum transcription accuracy (requires more RAM and CPU):
asr:
model_size: "medium"
language: "en" # Set explicitly for better accuracy
beam_size: 5
best_of: 5
audio:
vad_mode: 2 # Less aggressive (accepts more audio)
vad_silence_timeout_ms: 1500 # Wait longer before stopping
typing:
smart_spacing: true
smart_capitalization: true
Fast Performance Setup (Speed Priority)
For minimal latency on older hardware:
asr:
model_size: "tiny"
compute_type: "int8"
device: "cpu"
audio:
vad_mode: 3 # Most aggressive (quick detection)
vad_silence_timeout_ms: 800 # Stop quickly
typing:
strategy: "xtest" # Faster than clipboard
typing_delay_ms: 5 # Minimum delay
Privacy-Focused Setup
Maximum privacy with minimal logging:
mode: "dictation"
log_level: "ERROR" # Only log errors
typing:
preserve_clipboard: false # Don't access clipboard
smart_spacing: true
smart_capitalization: true
notifications:
enabled: true
show_info: false # Don't show info notifications
show_progress: false # Don't show progress
Multi-Language Setup
For users who switch between languages:
asr:
model_size: "small" # Better for multi-language
language: null # Auto-detect
beam_size: 5
typing:
strategy: "clipboard" # Better for non-ASCII
preserve_clipboard: true
smart_spacing: true
smart_capitalization: true
Command-Heavy Workflow
For users who primarily use voice commands:
mode: "command"
commands:
enabled: true
require_confirmation: false # Skip confirmations for trusted commands
commands:
"open terminal":
action: "launch"
target: "gnome-terminal"
"open browser":
action: "launch"
target: "firefox"
"open files":
action: "launch"
target: "nemo"
"search":
action: "url"
target: "https://www.google.com/search?q={query}"
"youtube":
action: "url"
target: "https://youtube.com"
"volume up":
action: "shell"
target: "pactl set-sink-volume @DEFAULT_SINK@ +5%"
"volume down":
action: "shell"
target: "pactl set-sink-volume @DEFAULT_SINK@ -5%"
"mute":
action: "shell"
target: "pactl set-sink-mute @DEFAULT_SINK@ toggle"
Laptop/Mobile Setup
For use on laptops with limited resources:
asr:
model_size: "base"
device: "cpu"
compute_type: "int8"
audio:
vad_mode: 3
vad_silence_timeout_ms: 1000
typing:
strategy: "clipboard"
smart_spacing: true
smart_capitalization: true
notifications:
enabled: true
respect_dnd: true # Important for battery life
max_toasts_per_minute: 2
Troubleshooting Common Configurations
Hotkey Conflicts
If your hotkeys conflict with system shortcuts:
hotkeys:
push_to_talk: "ctrl+alt+space" # Alternative
toggle: "ctrl+alt+shift+space"
undo_last: "ctrl+alt+z"
Or use Cinnamon custom shortcuts instead.
Audio Dropouts
If you experience audio dropouts or missed speech:
audio:
vad_mode: 1 # Less aggressive
vad_silence_timeout_ms: 2000 # Wait longer
frame_duration_ms: 30 # Larger frames (less CPU)
Clipboard Issues
If clipboard paste doesn't work reliably:
typing:
strategy: "xtest" # Try XTest instead
preserve_clipboard: false # Disable if causing issues
Performance Issues
If transcription is slow or uses too much CPU:
asr:
model_size: "tiny" # Smallest, fastest model
compute_type: "int8"
device: "cpu"
audio:
sample_rate: 16000 # Default, don't increase
channels: 1 # Mono only
Environment Variables
XDG_CONFIG_HOME: Config directory (default:~/.config)XDG_CACHE_HOME: Model cache directory (default:~/.cache)XDG_STATE_HOME: Log directory (default:~/.local/state)WISPR_LOG_LEVEL: Override log level (DEBUG, INFO, WARNING, ERROR)
Example:
WISPR_LOG_LEVEL=DEBUG wispr-lite
Tips and Best Practices
- Start with defaults: The default configuration is optimized for most users
- Model selection: Use
basefor daily use,smallfor better accuracy,tinyfor speed - Hotkey choice: Avoid common shortcuts like Ctrl+Space (input methods) or Super+Space (launchers)
- VAD sensitivity: Mode 3 (default) works well; lower if it cuts off speech
- Clipboard vs XTest: Clipboard is safer and works everywhere; XTest is faster but may have compatibility issues
- Smart features: Keep smart_spacing and smart_capitalization enabled for better output
- Notifications: Respect DND to avoid interruptions during presentations/screen sharing
- Backup config: Keep a backup of your customized config.yaml