feat: compact single-panel widget with logo bolt - #60
Merged
Merged
Conversation
Merge the main window into one frameless dark surface: title and window controls, gold microphone with recording waves and processing ring, status/timer and the tool row (editor, history, TTS, settings, overflow menu). Workflows, collect dictation and discard stay in the transient popup. - Frameless window, moved via QWindow.startSystemMove (Wayland) - Close button hides to tray, minimize minimizes the real window - Tray restores a minimized window with showNormal() - Compact geometry: 242x213 px on GNOME/Wayland - Official Blitztext bolt read locally from app/assets/logo-mark-dark.svg and cut out of the microphone capsule as a vector path - Fix PyQt6 QPoint/QPointF TypeError that aborted RecordButton.paintEvent - Neumorphic restyling of compose, history and TTS windows Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpE6yNpSWEnYfvJd4hyJK3
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eff35f831c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The API key status word was hardcoded German, so the English settings tab
showed "Status: nicht gesetzt". Emoji density offered the raw German config
values ("wenig/mittel/viel") in both languages. Qt also swallowed the "&" in
captions such as "Insert & Close", "Text & AI" and "Dictate & improve",
because tabs, buttons and menu actions read it as a mnemonic marker.
- add settings.api_key.status_set/status_unset and emoji density captions
- translate the emoji density combo while storing the language independent value
- add i18n.tq() and use it for tab, button and QAction captions
- attach field help to editors that sit inside layout rows (base URL), so
keyboard and screen reader users keep the HTTPS guidance
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The READMEs still described the old main window, the nine writing-style presets and the former workflow brand names, and the regenerated assets lived in a separate single-panel/ folder next to stale duplicates. - generate every screenshot into docs/screenshots/linux again and drop the legacy aliases (main-window*, settings-ai-workflows*, Banner.png) - add the new widget states, the compose prompt editor and the options menu - document the five text actions, the current workflow names and the "Text & AI" settings tab in README.md and README.de.md - size the settings dialog per tab and show Piper instead of a cloud error - ignore the local scratch/ and prototypes/ directories Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The main window is now a single compact, frameless dark surface instead of a native window with separate floating panels. The PR now also carries the documentation, screenshots and settings fixes that go with it.
QWindow.startSystemMove()(works on Wayland). The close button hides to the tray, minimize minimizes the real window, and the tray restores a minimized window withshowNormal().app/assets/logo-mark-dark.svg(identical to the website brand asset) and cut out of the microphone capsule as a vector path. No network access at runtime.QPoint/QPointFTypeErrorabortedRecordButton.paintEvent.Settings and i18n fixes (
9213108)wenig/mittel/viel.&in captions such as "Insert & Close", "Text & AI" and "Dictate & improve". The newi18n.tq()escapes it for tabs, buttons and menu actions.app/blitztext_linux.py.Documentation and assets (
0de779a)docs/screenshots/linux/again; the legacy aliases (main-window*,settings-ai-workflows*,Banner.png) are gone and there is exactly one current set.README.mdandREADME.de.mddocument the widget, the five text actions (instead of the removed nine writing-style presets), the current workflow names and the "Text & AI" settings tab.scratch/andprototypes/are ignored locally.Test plan
WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest: 684 passedQT_QPA_PLATFORM=offscreen pytest: 547 passed, 137 skippedgit diff --checkandpy_compileclean./run.shwithout errorsRelated
The website repository
TimInTech/blitztextwebwas updated in lockstep (same screenshots, same wording) in1428b8a.🤖 Generated with Claude Code
https://claude.ai/code/session_01QpE6yNpSWEnYfvJd4hyJK3