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.9.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pomw-0.0.9-py3-none-any.whl (75.3 kB view details)

Uploaded Python 3

File details

Details for the file pomw-0.0.9.tar.gz.

File metadata

  • Download URL: pomw-0.0.9.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.14.48-coreos-r2

File hashes

Hashes for pomw-0.0.9.tar.gz
Algorithm Hash digest
SHA256 84ca2def3794c1196596468689f67e81a9125bf766ba227c6a2083a9e9c6d4d2
MD5 c708f9e9f0eb121a373520effcdb7669
BLAKE2b-256 e3fe743cc4a76f41bcd66335fcaaa3d17afb73c9d06676a86c599629720cdf97

See more details on using hashes here.

File details

Details for the file pomw-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: pomw-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 75.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.11 CPython/3.7.2 Linux/4.14.48-coreos-r2

File hashes

Hashes for pomw-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 38f2473d83dca655eee59713d6b73443884d7f4d0b794317b2980d62e20ee366
MD5 57d4a52b66098472edc6f5088c8c9fda
BLAKE2b-256 551edaf5272d5ae4843cbf0252959a654dc83571ae87a0daa879b8dcacb07629

See more details on using hashes here.

Supported by

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