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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file pomodorable-0.1.dev24.tar.gz.

File metadata

  • Download URL: pomodorable-0.1.dev24.tar.gz
  • Upload date:
  • Size: 203.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.26.0

File hashes

Hashes for pomodorable-0.1.dev24.tar.gz
Algorithm Hash digest
SHA256 f7d9664ea7e460e984960d3634ac859498c80976a453f185f04dc1b18d1d0f56
MD5 f72d34632aca9768a24a16bbf32912c2
BLAKE2b-256 62455ecf1fd01af23926c3226d7e21a4bffc5410976e0514f900cedf31ba4558

See more details on using hashes here.

File details

Details for the file pomodorable-0.1.dev24-py3-none-any.whl.

File metadata

File hashes

Hashes for pomodorable-0.1.dev24-py3-none-any.whl
Algorithm Hash digest
SHA256 c28bf76f28ae696db54d62b7f518099fe00aa423238f48b18250dac1f2a443d7
MD5 cca434763e555d4302e845158da96412
BLAKE2b-256 c39443f6543c456506a01a9bd5e6178de527efb2d9544d0290d6ac879cf75196

See more details on using hashes here.

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