Skip to content

Demo GIF with real UI, Breeze-Dark screenshots, and correct default hotkey label#52

Merged
TimInTech merged 3 commits into
mainfrom
docs/readme-demo-gif
Jul 13, 2026
Merged

Demo GIF with real UI, Breeze-Dark screenshots, and correct default hotkey label#52
TimInTech merged 3 commits into
mainfrom
docs/readme-demo-gif

Conversation

@TimInTech

Copy link
Copy Markdown
Owner

Summary

Three related improvements to how the product presents itself in the README — plus one real UI bug they uncovered:

1. Animated workflow demo GIF (5094e5e)

  • New deterministic generator scripts/_make_demo_gif.py: grabs the real PyQt6 main window offscreen (same approach as _make_screenshots.py) in its true states — ready, recording (timer counting), transcribing (spinner), done — and composites it next to a plain target text field that receives the transcript via a typewriter animation. The real tray icons mirror the workflow states. No invented controls.
  • Outputs demo-en.gif (412 KiB) / demo-de.gif (460 KiB); embedded at the top of both READMEs.
  • Pure helpers covered by 13 unit tests (tests/test_make_demo_gif.py), following the test_make_screenshots.py conventions.

2. Correct default hotkey label (1691a11)

  • The standard Blitztext workflow is triggered by the configurable recording key (transcription_hotkey, default KEY_LEFTALT in hold mode) — there is no Meta+H mapping in _HOTKEY_MAP. The tray menu, WORKFLOW_META, and the README hotkey table nevertheless claimed Meta+H.
  • The tray menu label is now derived from the actual configuration via a new hotkey_display_name() helper (explicit names for all VALID_HOTKEY_KEYS, safe fallback otherwise) and refreshes on settings save. README tables (EN/DE) fixed accordingly.

3. Screenshots with the real Breeze-Dark theme (b67729c)

  • scripts/_make_screenshots.py never called theme.apply_theme(), so every committed README screenshot and banner showed the unthemed light Qt look instead of the actual product appearance. The generator now applies the theme exactly like the real app start does; all screenshots and banners are regenerated.

Test plan

  • pytest tests/ — 440 passed, 70 skipped
  • WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest tests/ — 510 passed
  • Regenerated GIFs/screenshots visually inspected frame by frame (states, theme, tray colors, hotkey labels)
  • Review rendered READMEs (EN/DE) on GitHub after merge

Add a deterministic demo GIF generator (scripts/_make_demo_gif.py)
that grabs the real PyQt6 main window offscreen — with the real
Breeze-Dark theme applied like at app startup — in its true states
(ready, recording, transcribing, done) and composites it next to a
plain target text field that receives the transcript. The real tray
icons mirror the workflow states; no invented controls are drawn.

The displayed hotkey matches the actual default configuration:
hold left Alt (transcription_hotkey: KEY_LEFTALT, hotkey_mode: hold).

Embed the generated demo-en.gif / demo-de.gif at the top of both
READMEs and cover the pure helpers with unit tests.
The standard Blitztext workflow is triggered by the configurable
recording key (transcription_hotkey, default KEY_LEFTALT in hold
mode) — there is no Meta+H mapping in the hotkey service. The tray
menu and WORKFLOW_META nevertheless displayed a hardcoded Meta+H.

Derive the tray menu label from the actual configuration via a new
hotkey_display_name() helper (covers all VALID_HOTKEY_KEYS), fix the
hotkey table in both READMEs, and adjust the workflow metadata.
The screenshot generator never called theme.apply_theme(), so all
committed README screenshots and banners showed the unthemed light
Qt look instead of the actual Breeze-Dark glass appearance the app
applies at startup. Apply the theme like the real app start does and
regenerate every screenshot and banner (the tray menu now also shows
the corrected Alt hotkey label).
@TimInTech TimInTech merged commit 93fa13f into main Jul 13, 2026
7 checks passed
@TimInTech TimInTech deleted the docs/readme-demo-gif branch July 13, 2026 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant