Skip to content

[Feature Request] Mini floating widget when window is minimized #357

@Hungerdream

Description

@Hungerdream

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

  1. Main window minimizes → floating widget appears
  2. Main window restored → floating widget disappears
  3. Widget is draggable, stays on top of other windows
  4. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions