Skip to content

Commit 72036c7

Browse files
committed
docs: document recording snackbar indicator
Add the on-screen recording indicator to the README feature list and a snackbar.py API contract block in IMPLEMENTATION.md.
1 parent ed731b5 commit 72036c7

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ That's it.
3434
- **OpenAI-compatible speech-to-text** - use OpenAI, Groq, or another compatible `/audio/transcriptions` endpoint.
3535
- **Optional AI cleanup** - fix punctuation, grammar, spelling, and capitalization after transcription.
3636
- **Fallback providers** - configure backup STT and LLM providers if the primary one fails.
37+
- **On-screen recording indicator** - a small pulsing pill appears at the bottom-center of the screen while recording and processing.
3738
- **System tray app** - enable/disable, change hotkey, toggle rewrite, open settings, or exit from the tray.
3839
- **Microphone selection** - pick your input device and calibrate silence detection.
3940
- **Post-type key** - optionally press `Enter`, `Tab`, `Space`, or `Backspace` after typing.

docs/IMPLEMENTATION.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,23 @@ def get_icon_bytes(state: TrayState) -> bytes: ...
246246
"""Raw PNG bytes for testing without Qt."""
247247
```
248248

249+
### snackbar.py
250+
251+
```python
252+
def snackbar_content_for(state_value: str) -> tuple[str, tuple[int, int, int]] | None: ...
253+
"""Map a TrayState value to (label, dot_rgb); None for idle/unknown (hidden)."""
254+
255+
def bottom_center_xy(available: QRect, size: QSize, margin: int = 48) -> QPoint: ...
256+
"""Top-left point centering *size* horizontally in *available*, *margin* above bottom."""
257+
258+
class RecordingSnackbar(QWidget):
259+
"""Frameless, always-on-top, translucent, click-through status pill at the
260+
bottom-center of the primary screen. Pulsing dot + label.
261+
Never takes focus or appears in the taskbar."""
262+
def show_state(self, label: str, dot_rgb: tuple[int, int, int]) -> None: ...
263+
def hide_state(self) -> None: ...
264+
```
265+
249266
### settings_dialog.py
250267

251268
```python

0 commit comments

Comments
 (0)