Skip to main content

The Pomodoro Technique using TaskWarrior and TimeWarrior

Project description

Pomodorowarrior

A command line tool that integrates with Taskwarrior and Timewarrior to implement the Pomodoro Technique.

Command Line Interface

Pomodorowarrior uses a command with subcommands interface, similar to Taskwarrior itself. commands can be broken up into 3 different pomodoro phases.

Planning

# Plan a new pomodoro
pomw plan TASK_ID [-d DATE] [-q QUANTITY]

Recording

# Mark a pomodoro as completed
pomw complete TASK_ID [-e END_TIME]`

# Mark an internal or external interruption
pomw interrupt TASK_ID {internal|external}

# Void a pomodoro
pomw void TASK_ID

# Add non pomodoro time
pomw nonpom TASK_ID [-q QUANTITY] [-d DURATION] [-s START_TIME] [-e END_TIME]

Reporting

# Print the To Do Today sheet
pomw tdt

Special notation for quantities

To reduce the number of subcommands needed by the CLI (unplan or delete commands for example), I implemented a special notation for the QUANTITIES arguments

+X => Current value = Current value + X
-X => Current value = Current value - X
 X => Current value = X

For example if you look at the following series of commands:

pomw plan 2 -q 1
# Planned pomodoros for task 2 is 1
pomw plan 2 -q +1
# Planned pomodoros for task 2 is 2
pomw plan 2 -q 1
# Planned pomodoros for task 2 is 1
pomw plan 2 -q -1
# Planned pomodoros for task 2 is 0

Configuration

The configuration file should be located at $HOME/.config/pomw/pomwrc

This example shows the supported configuration values

[pomodoro]
# Pomodoro length in minutes
length = 30

[timew]
# Should pomw sync values to Time Warrior
sync = False

Taskwarrior and Timewarrior integration

Pomodorowarrior never mark tasks as completed in Taskwarrior, it only adds Pomodoros to a task. Every time a Pomodoro gets marked as completed, the time is logged in Timewarrior.

Development

Build System

Starting with 0.0.3 we replace setuptools with poetry. Poetry is PEP 518 compliant, and uses pyproject.toml for configuration. In my opinion it provides for a simpler development experience.

Poetry recommends that you install it isolated from the rest of your system. This can be done by running the install script:

curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python

Release

The script ./release.py have been developed to automate cutting releases. It requires git-extras to be installed on your system.

If you want to manually create a release, you have to follow these rules:

  • Only release from master
  • Update pomw/__version__.py with the new version number
  • Update pyproject.toml with the new version number
  • Update Changelog with the commits since the previous release

Upload a release to PYPI

Once a tag is created, and pushed to Gitlab, the release is automatically uploaded to PYPI by the Gitlab CI publish stage.

TODO

  • Implement more reports
  • Tracking pomodoros using the interactive user interface

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

pomw-0.0.10.tar.gz (23.8 kB view hashes)

Uploaded Source

Built Distribution

pomw-0.0.10-py3-none-any.whl (75.3 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