Skip to main content

A pomodoro timer implemented as a Textual app

Project description

pomodorable

A pomodoro timer built using Textual.

Development work in progress.

Picture of a Pomodoro Timer

Screenshots

Screenshot animation

Using the Application

Modes

  1. Ready
    • Initial mode when the application starts.
    • Returned to when a session is finished or stopped.
  2. Running
    • Entered when the Start button is pressed.
    • Returned to when Extend or Resume is chosen in paused mode.
  3. Paused
    • Entered when the Pause button is pressed.
    • Ended by pressing Extend, Resume or Stop.

Display and Inputs

Times Display

  • Countdown display: Shows the time remaining in the current session.
  • Start Time display: Shows the Start time of the current session. When a session is not running it shows the current time.
  • End Time display: Shows the End time of the current session. When a session is not running it shows the current time plus the session length.

Settings Panel

  • Reset button: Resets the Countdown to the configured session length (default setting is 25 minutes).
  • +5, +1, -1, -5 buttons: Increment or decrement the Countdown by minutes.
  • ? (About) button: Open the About screen.
  • Settings button: Open the Settings screen.

Task Panel

  • Task description input box: A brief description of the task at hand (optional). Press the down arrow key to open a list of recently used descriptions to pick from.
  • Start button: Starts the session. Countdown begins. Time displays show Start and End times for the running session.

Pause Panel - Running

  • Pause button: Pause the running session.
  • Reason description input box: Disabled when running.

Pause Panel - Paused

  • Pause button: Disabled when paused.
  • Reason description input box: Enter the reason for pausing (optional). Press the down arrow key to open a list of recently used descriptions to pick from.
  • Extend button: Return to running. Add the paused duration to the end-time to complete the full session length time-on-task.
  • Resume button: Return to running. Resume the session from the current time. The pause duration is subtracted from the countdown, reducing the session's time-on-task.
  • Stop button: Finish the session now. Return to ready mode.

Timer Bar

  • Mimics the markings on a classic pomodoro (tomato-shaped) kitchen timer.
  • Shows the current countdown minute at the pointer.

Log Panel

  • Shows messages from the application with a timestamp.

Reference

Packages used

  • Textual - Textual User Interface framework
  • Click - command-line options
  • platformdirs - common directories on different platforms
  • plyer - system notifications
  • python-dotenv - override default settings during development
  • tomlkit - store configuration as TOML

Project tools

  • Hatch - Python project manager (environments, packaging, and more)
  • Ruff - linter and code formatter (integrated with Hatch)
  • pytest - testing framework
  • Just - command runner

Textual Development Tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pomodorable-0.1.dev24.tar.gz (203.3 kB view hashes)

Uploaded Source

Built Distribution

pomodorable-0.1.dev24-py3-none-any.whl (24.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page