Releases: sprawf/hotkeys
v3.2.0 — Deep audit pass + bundled OCR data
Hotkeys v3.2.0 — Windows
Highlights
🔬 Deep static-analysis pass + audit
- 5 NameError-class bugs fixed that would have silently crashed when their code paths ran (Shift+F10 toggle, OCR error pills, chat-notes proofread). Caught by a new
test_undefined_names.pystatic guard. - 7 HIGH + 6 MED + 3 LOW severity issues found and fixed across
main.py,engine.py,audio_editor.py,library.py,quicknotes.py,screenshot.py,screen_recorder.py,gif_recorder.py,settings.py,core/audio.py,core/typer.py,transcribe/engine.py,transcribe/tools.py,vision.py,sticky_note.py. Includes:- Ask hotkey (
Shift+F4) flag-orphan fix — can no longer be silently dead after a worker exception. - IPC accept loop is now thread-per-connection. A slow client can no longer block other IPC.
- PTT keyboard hook now uses
GetAsyncKeyStatedirectly (was callingkeyboard.is_pressed()inside the LL hook callback — risked Windows uninstalling the hook). - 5 ctypes Win32 sites had missing
restype=c_void_pon HWND-returning calls — latent 64-bit HWND truncation closed. - LLM client (
httpx.Client(verify=False)) is now a cached singleton per provider — was leaking a fresh connection pool + sockets per call. - Audio editor child process is now assigned to the cleanup Job Object (whiteboard already was). Force-killing the main app reaps Tenacity too.
- ffmpeg subprocess
wait()now has a 30 s timeout with kill escalation — hung ffmpeg can no longer block the worker forever.
- Ask hotkey (
🆕 MiniNotepad infrastructure
mini_notepad.py— minimal Tk Toplevel matching real Notepad's appearance (Consolas at user's persisted font size, blank title bar via transparent icon). Available as a paste-failure fallback target. Dormant in this build (auto-trigger was too fragile on UWP apps); kept for future explicit-trigger use.
📦 Tesseract data bundled
tessdata/(eng + ara + osd traineddata + Tesseract configs, ~37 MB) now ships in the build. Scan Doc auto-orientation works out of the box without a system Tesseract install. Arabic OCR also works plug-and-play.
📚 PROJECT.md rule #15: Undefined-name rule
- Documents the NameError class with the canonical fixes (missing-function pattern +
lambda m=msg:default-arg binding forexc-in-deferred-callback). Anyone editing the codebase has a self-check + a static-guard test to run.
Notes for end users
- This is a pure stability/quality release — no behavior changes you'd notice.
- All your data (config, notes, prompts) stays in
Hotkeys/data/next to the .exe — fully portable. Just replace the folder.
How to install
- Download
Hotkeys-Windows.zip. - Extract anywhere — no installer needed.
- Run
Hotkeys.exe. Tray icon appears. - Settings → Providers → add your API key.
Verified
Static guard: 50 source files clean of undefined names, 16 modules import cleanly.
Boot smoke test: tray + Whisper JIT warmup + cloud TLS pre-warm all came up in under 8 s.
Source commit: b28b871 on main.
v3.1.0 — Scan & Edit (focused Tk window + polish pass)
Hotkeys v3.1.0 — Windows
Highlights
📄 New: focused Scan & Edit window (Scan document from screenshot context menu)
A single Tk window that opens with your captured region and the crop frame ready to confirm. Document tools + Lightroom-lite sliders side-by-side.
- Modes — Magic Color / Grayscale / B&W / Original; re-runs the upstream scan pipeline on switch.
- Crop — 8-handle frame, opens at full image bounds. Enter to confirm, Esc to skip.
- Auto-orient — Tesseract OSD detects 0°/90°/180°/270° from upright. Runs automatically on the cleaned image; manual retrigger via top-bar ↻ Auto button (handy when the auto-pass skipped due to too-few-characters).
- Manual perspective —
✎ Edit cornerslets you drag the 4 quad corners over the document edges for a perfect flatten. - Photo sliders — Brightness, Contrast, Saturation, Sharpness, Warmth. Non-destructive, applied on top of the pipeline output at render and save time.
- ✨ Auto Enhance — gray-world WB → CLAHE → unsharp → saturation lift → sigmoid contrast pop. Tuned for visible delta even on already-balanced documents.
- Save PDF / Copy / Extract text — all backgrounded so the UI stays smooth even on 4K screenshots.
- Ctrl+Z — full state-snapshot undo (mode / rotate / crop / enhance / sliders / corners).
- Display-image cache — slider drag goes from ~13 fps to ~209 fps on 4K input.
🛠 Infrastructure
- Win32 Job Object for editor / whiteboard children: force-killing the main app now reaps the entire process tree (no more orphan WebView2 children eating RAM).
- Subprocess spawn pattern documented: direct
Popenwith detach flags beatsStart-Processby ~22 s per launch (AVG behavior scan onpowershell.exe). - Tessdata bundled —
ara.traineddata,eng.traineddata,osd.traineddataship in the dist. Arabic OCR + Tesseract OSD auto-orient work plug-and-play with no system language-pack install.
🧹 Removed
- Audio editor drop-hint overlay (covered the Tenacity logo, never worked as intended).
How to install
- Download
Hotkeys-Windows.zip. - Extract anywhere — no installer needed.
- Run
Hotkeys.exe. The tray icon appears. - Add your API key in Settings (right-click tray → Settings → Providers).
Smoke-test verified
Boot + Whisper JIT warmup + Cloud TLS pre-warm + tray icon all came up in < 8 s.
Source commit: 1e2bc09 on main (Scan preview rewrite: focused Tk window + polish pass).
v3 — Hotkeys (Windows)
Plug-and-play Windows productivity app: AI text refining, Whisper voice typing, screenshot OCR + translate, screen / GIF / macro recorder, transcribe audio + video, Quick Notes, Whiteboard, audio editor, and a customisable library of prompts and multi-step workflows.
Install
- Download
Hotkeys-v3-win64.zipbelow - Extract anywhere (Desktop, Documents, a USB stick — fully portable)
- Double-click
Hotkeys.exe - First launch: add your free Groq API key in tray icon → Settings
No installation, no admin needed, no separate Python / model downloads. Everything's in the zip.
What's in this build
This release rolls up all the robustness work from the latest session:
- Structural tab-render guard — eliminates the "tab gets stuck on one screen" bug class, permanently. Static + boot-time checks make it impossible for a new tab to ship without the guard.
- HWND audit — every Win32 call across the codebase now uses
top_level_hwnd()so calls land on the right window. Fixes Quick Notes maximize, rounded corners, AskPill lift, audio editor hint z-order. - Screenshot pipeline robustness — watchdog grace window stops false-positive resets,
_winattribute fix stops the silent singleton release, overlay priming makes PrtSc work over auto-dismissing tray menus. - Quick Notes smart maximize — toggle works even when window opens at fullscreen size; restores to 70% centred default if no smaller restore-geometry is stored.
- Bulk Delete-all buttons on Macros / Screen / GIF tabs.
- Notes / Library pill positioning — anchor at the cursor + always on top, even after fresh launch.
- Streaming LLM responses in the Library Ask tab.
System requirements
- Windows 10 or 11 (64-bit)
- ~3 GB free disk space
- Microphone (only for voice features)
- Internet (only for AI features; everything else works offline)
Hotkeys v2.0 — Windows
What's new in v2.0
New features
- Per-prompt hotkeys (F1–F12) — assign any function key to any prompt and fire it from any app instantly
- Sticky note popups — press a prompt hotkey to open a floating editable preview; press again to apply and close
- Live spell check — misspellings underlined in red as you type in the prompt editor
- 16 built-in prompts — full set pre-assigned to F1–F12, ready to use out of the box
Fixes
- Single tray icon guaranteed — notification area is swept on every launch, no more ghost duplicates from hard kills or crashes
- Prompt library stays consistent — saving prompts now syncs both the AppData and bundled file, so the library is always identical regardless of who or how it was launched
- Edit/Add dialogs no longer open behind the library window
No bundled API keys
This build ships without any pre-filled keys. Go to Settings and paste your own free key from Cerebras or Groq — both free, 2 minutes to set up.
Install: extract anywhere, double-click \Hotkeys.exe. No Python, no pip, no setup.
v1.0.0 - Initial Release
? Hotkeys v1.0.0
Rewrite any text, in any app, in under a second. No copy-paste. No switching windows.
Windows
Download Hotkeys-v1.0-win64.zip, extract anywhere, run Hotkeys.exe. No Python required.
Mac
Download install_mac.command, right-click ? Open, follow the on-screen steps.
What's included
- AI text refiner (select text ? hotkey ? AI rewrites it in place)
- Voice-to-text (speak ? text appears wherever your cursor is)
- Prompt library with drag-and-drop reordering
- Noise reduction, push-to-talk, transcription history
- Works with Cerebras and Groq (both free tier)