Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Hit your <span style="color:#FF4500">**hotkey shortcut**</span> -> speak -> hotk
| -------------------------------- | ----------------------------------------------------------------------- |
| **Whisper.cpp** backend | Local, offline, fast ASR. |
| **Simulated typing** | instantly types straight into any currently focused input window. Even on Wayland! (*ydotool*). |
| **Clipboard** | Auto-copies into clipboard - ready for pasting, if desired |
| **Clipboard** | Optionally copies to clipboard (enabled by default) - ready for pasting, if desired |
| **Languages** | 99+ languages. Provides default language config and session language override |
| **AIPP**, AI Post-Processing | AI-rewriting via local or cloud LLMs. GUI prompt editor. |
| **Multiple UI** surfaces | CLI, GUI (minimal PyQt6), TRAY (system tray), FLUX (triggered by voice activity detection, beta) |
Expand Down Expand Up @@ -138,7 +138,7 @@ Leave VOXD running in the background -> go to any app where you want to voice-ty
| Press hotkey … | VOXD does … |
| ---------------- | ----------------------------------------------------------- |
| **First press** | start recording |
| **Second press** | stop ⇢ [transcribe ⇢ copy to clipboard] ⇢ types the output into any focused app |
| **Second press** | stop ⇢ transcribe ⇢ types the output into any focused app (and copies to clipboard if enabled) |

Otherwise, if in --flux (beta), **just speak**.

Expand Down
1 change: 1 addition & 0 deletions src/voxd/core/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"typing_start_delay": 0.15,
"ctrl_v_paste": False, # Use Ctrl+V instead of default Ctrl+Shift+V
"append_trailing_space": True,
"copy_to_clipboard": True,
"verbosity": False,
"autostart": False,
"save_recordings": False,
Expand Down
11 changes: 6 additions & 5 deletions src/voxd/core/voxd_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,13 @@ def run(self):
except Exception:
pass # logging failures should never crash the thread

# Copy to clipboard unless typing is enabled with paste mode (delay <= 0)
# to avoid double-copying to clipboard
typing_will_paste = (self.cfg.typing and
# Copy to clipboard if enabled, unless typing is enabled with paste mode
# (delay <= 0) to avoid double-copying to clipboard
typing_will_paste = (self.cfg.typing and
self.cfg.typing_delay <= 0)

if not typing_will_paste and final_text:
copy_enabled = self.cfg.data.get("copy_to_clipboard", True)

if copy_enabled and not typing_will_paste and final_text:
clipboard.copy(final_text)

if self.cfg.typing and final_text:
Expand Down
1 change: 1 addition & 0 deletions src/voxd/defaults/default_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ typing_delay: 1
typing_start_delay: 0.15
ctrl_v_paste: false # Use Ctrl+V instead of default Ctrl+Shift+V
append_trailing_space: true
copy_to_clipboard: true
verbosity: false
autostart: false
record_chunked: true
Expand Down
1 change: 1 addition & 0 deletions src/voxd/gui/settings_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def __init__(self, cfg: AppConfig, parent=None):
self._add_doublespin(form, "typing_start_delay", "Start delay (s)", 0, 5, step=0.05)
self._add_checkbox(form, "ctrl_v_paste", "Use Ctrl+V paste")
self._add_checkbox(form, "append_trailing_space", "Add trailing space when typing")
self._add_checkbox(form, "copy_to_clipboard", "Copy transcription to clipboard")

# ------------------------------------------------------------------
# Logging & Performance
Expand Down