Overview

Pomodoro timer

This SublimeText plugin provides a Pomodoro timer and logs a count for each completed and interrupted pomodoro.

Each pomodoro begins with a prompt for a description. The log is keyed on this description so you can track the number of pomodoros and breaks for a task or set of tasks.

Logging

Each description will be logged with a count of completed and interrupted pomodoros, e.g.:

"An activity": {
  "complete": 1,
  "breaks": 0
},

An optional notation can be used for the description to key it to a story/bug/project, either by id or name.

The default regex allows you to group pomodoro activities by name

Project X: Fix the pumps!

A sample regex is included for a notation common to the Pivotal Tracker API to identify PT stories:

[#123456] Documenting the fix

The notation is configurable via regex in the settings and matches will add entries to the log like:

"Project X": {
    "logs": [
      "Fix the pumps!",
      "Cleanup the desktop"
    ],
    "completed": 3,
    "breaks": 2
},
"123456": {
    "logs": [
      "Bug fixing",
      "Documenting the fix"
    ],
    "completed": 2,
    "breaks": 0
},

Notifications

Optional notifications can be enabled in the settings if you want to be notified via Growl, OSX say, or some other system command. The default is to display a dialog within the editor.

There are two message states: completed and interrupted. When a pomodoro is completed or interrupted, a message will be passed to the command for display, notification, logging, etc. The sublime_dialog 'command' is reserved for displaying a message dialog in the editor. This is the default entry:

"sublime_dialog": {
    "completed": "Completed Pomodoro!\n\n[{id}]\n{description}\n\nTake a {break_minutes}m break.",
    "interrupted": "Pomodoro Interrupted!\n{remaining_hours:>02}:{remaining_minutes:>02}:{remaining_seconds:>02} remaining\n\n[{id}]\n{description}",
    "enabled": true
},

Replacement formatting variables are available for the messages:

  • id (if story_regex matches)
  • description
  • break_hours
  • break_minutes
  • break_seconds
  • length_hours
  • length_minutes
  • length_seconds
  • remaining_hours
  • remaining_minutes
  • remaining_seconds

Commands

Start Pomo (start_pomo)
Prompt for a description and start the timer
Break Pomo (stop_pomo)
Interrupt the current pomodoro
View Log (pomo_report)
Display the log file

Key Bindings (suggested)

{"keys":["super+alt+p"], "command": "start_pomo"}, {"keys":["super+shift+alt+p"], "command": "pomo_report"}

TODO

  • Logging should be more configurable, i.e. per-project without requiring user to specify on each pomodoro or update the settings file
  • Pre-fill the description prompt with the last pomodoro description
  • Possibly prompt the user for a reason if interrupting the pomodoro
  • Format the display of the log file
  • Add Pivotal Tracker integration to compare story estimates with completed pomodoros