Skip to content

Releases: sprawf/hotkeys

v3.2.0 — Deep audit pass + bundled OCR data

15 Jun 13:07

Choose a tag to compare

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.py static 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 GetAsyncKeyState directly (was calling keyboard.is_pressed() inside the LL hook callback — risked Windows uninstalling the hook).
    • 5 ctypes Win32 sites had missing restype=c_void_p on 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.

🆕 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 for exc-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

  1. Download Hotkeys-Windows.zip.
  2. Extract anywhere — no installer needed.
  3. Run Hotkeys.exe. Tray icon appears.
  4. 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)

11 Jun 13:12

Choose a tag to compare

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 corners lets 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 Popen with detach flags beats Start-Process by ~22 s per launch (AVG behavior scan on powershell.exe).
  • Tessdata bundledara.traineddata, eng.traineddata, osd.traineddata ship 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

  1. Download Hotkeys-Windows.zip.
  2. Extract anywhere — no installer needed.
  3. Run Hotkeys.exe. The tray icon appears.
  4. 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)

06 Jun 19:26

Choose a tag to compare

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

  1. Download Hotkeys-v3-win64.zip below
  2. Extract anywhere (Desktop, Documents, a USB stick — fully portable)
  3. Double-click Hotkeys.exe
  4. 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, _win attribute 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

22 May 15:44

Choose a tag to compare

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

20 May 21:02

Choose a tag to compare

? 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)