tj / pomo

Ruby Pomodoro app for the command-line (time / task management)
MIT License
525 stars 53 forks source link

Pomo Build Status Dependency Status Code Climate

Command-line application for the Pomodoro time management technique, with notification and tmux status bar support.

Description

With Pomo you can add, remove, list, view, and start timing tasks all via the command-line with a simple, slick interface. You are reminded of the remaining time on a task via Notification Center, Growl, libnotify, or Quicksilver. These notifications appear half-way, at the 5 minute point, and when the task duration has expired. Also, the Pomo timer can be displayed in your tmux status bar.

Installation

$ gem install pomo

Configuration

Pomo uses ~/.pomorc for configuration options.

To initialize a default configuration file:

$ pomo initconfig

See Configuration Options for more details on all the available options.

Task Selection API

Taken from pomo help:

pomo provides a unified task selection api which can be used
with most of the commands. Commands with [task] or [task ...]
in their synopsis accept only single or both single and multiple
task selection, respectively.

Single task selection:
n          : selects a single task by index : Ex: pomo remove 1
first      : selects the first task         : Ex: pomo remove first
last       : selects the last task          : Ex: pomo remove last

Multiple task selection:
[n ]+      : selects several tasks by index : Ex: pomo remove 2 8 1
[n..n]+    : selects a range of tasks       : Ex: pomo remove 5..9 11..14
[n..-n]+   : selects a range of tasks       : Ex: pomo remove 2..-1
[api ]+    : selects several tasks by api   : Ex: pomo remove first last
complete   : selects complete tasks         : Ex: pomo remove complete
incomplete : selects incomplete tasks       : Ex: pomo remove incomplete
all        : selects all tasks              : Ex: pomo remove all

Examples

Pomo OS X Notification

Configuration Options

The default configuration for pomo is as follows:

Settings are easily customizable. Taken from pomo help initconfig:

Examples:

# Configure with notification center, no progress bar, and tmux integration
pomo initconfig --notifier notification_center --no-progress --tmux

Options:
  --notifier <lib>     Specify notificaiton library: `notification_center`, `libnotify`, `growl`, `quicksilver`
  --[no-]progress      Run with progress bar
  --[no-]tmux          Refresh tmux status bar on timer change
  --[no-]force         force overwrite of existing config file

Tmux Status Bar Integration

Pomo's timer can be displayed in tmux's status bar with the following configuration set:

pomo initconfig --tmux

Then add the below to your ~/.tmux.conf:

set-option -g status-right '#(cat ~/.pomo_stat)'

The timer will display with the default color when not active, green during a Pomodoro, red during the last 5 minutes of a Pomodoro, and blue during a break e.g.

tmux status bar

Contributing

We :heart: pull requests and feedback. Feel free to submit a ticket or see CONTRIBUTING for details on pull requests.

Copyright

Copyright (c) 2012 TJ Holowaychuk. See LICENSE for details.