Summary
When the main window is minimized, show a small always-on-top floating
widget that displays the current timer countdown, so users can keep track
of their Pomodoro session without the full window taking up screen space.
Motivation
Many users run Pomotroid alongside other applications (code editors,
browsers, etc.). Having to switch back to the main window just to check
the remaining time breaks the focus flow. A compact floating widget would
solve this without being intrusive.
Proposed Design
Widget appearance (~120×60px, always on top, draggable):
- Shows current session type icon (🍅 focus / ☕ break)
- Shows remaining time
- Play/pause button
- Click anywhere on widget → restore main window
- Respects the active theme colors
Proposed Behavior
- Main window minimizes → floating widget appears
- Main window restored → floating widget disappears
- Widget is draggable, stays on top of other windows
- Timer continues running normally (no state change)
Technical Approach
Tauri 2 supports multiple windows natively. A second window
(widget) can be created on minimize and destroyed on restore,
communicating timer state via Tauri's event system (emit/listen).
Key files that would need changes:
src-tauri/src/lib.rs — listen for minimize event, create widget window
src-tauri/tauri.conf.json — register widget window config
src/routes/widget/ — new Svelte page for the widget UI
Questions for Maintainer
- Is this feature aligned with the project's vision?
- Any preference on how the widget should look or behave?
- Should this be opt-in via a setting (e.g. "Show mini widget on minimize")?
I'm happy to implement this if the direction sounds good!
Summary
When the main window is minimized, show a small always-on-top floating
widget that displays the current timer countdown, so users can keep track
of their Pomodoro session without the full window taking up screen space.
Motivation
Many users run Pomotroid alongside other applications (code editors,
browsers, etc.). Having to switch back to the main window just to check
the remaining time breaks the focus flow. A compact floating widget would
solve this without being intrusive.
Proposed Design
Widget appearance (~120×60px, always on top, draggable):
Proposed Behavior
Technical Approach
Tauri 2 supports multiple windows natively. A second window
(
widget) can be created on minimize and destroyed on restore,communicating timer state via Tauri's event system (
emit/listen).Key files that would need changes:
src-tauri/src/lib.rs— listen for minimize event, create widget windowsrc-tauri/tauri.conf.json— register widget window configsrc/routes/widget/— new Svelte page for the widget UIQuestions for Maintainer
I'm happy to implement this if the direction sounds good!