Skip to content

zuloo/todoman

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Todoman

Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos are stored into icalendar files, which means you can sync them via CalDAV using, for example, vdirsyncer.

Features

  • Listing, editing and creating todos.
  • Todos are read from individual ics files from the configured directory. This matches the vdir specification.
  • There's support for the most common TODO features for now (summary, description, location, due date and priority) for now.
  • Todoman should run on any major operating system.
  • Unsupported fields may not be shown but are never deleted or altered.

Planned Features

  • Keep a SQL cache of all the entries, and update this only when the modification time of the ics files changes. This design is inspired (identical, really) to what khal does.
  • Interactive mode. Including a list of todos, and easy selection for marking done and editing.
  • Support for other icalendar fields which are not implemented yet.
  • Customizable output format.

Pull requests and patches are welcome! 😉 Please report any issues on the project issue tracker

Caveats

Priority granularity hasn't been completely implemented yet. Icalendar supports priorities 1-9 or none. Todoman supports only none or 1 (highest).

Due dates are generally shown and editable as dates with no time component.

Support for the percent-completed attribute is incomplete. Todoman can only mark todos as completed (100%), and will nor reflect nor allow editing for values for percent > 0 ^ percent < 100.

Requirements

Running setup.py (as described below, in Installation) should install all necessary dependencies via pip. The only pre-requisite for this is python 3, which ships with most modern distributions.

  • python3 (tested on 3.4, should work on any version > 3.0)
  • docopt
  • icalendar
  • urwid
  • pyxdg
  • atomicwrites

Todoman will not work with python 2. However, keep in mind that python 2 and python 3 can coexist (and most distributions actually ship both).

Installation

If todoman is not in your distribution's repositories, to install it run python3 setup.py install.

Usage

You'll need to configure Todoman first. Required values are a path where your todos are stored and the date format you prefer. Check the todoman.conf.sample file, which should serve as a reference.
The configuration file should be placed in $XDG_CONFIG_DIR/todoman/todoman.conf. $XDG_CONFIG_DIR will be ~/.config is most situations.

Usage is rather simple:

todo
todo new
todo edit ID
todo show ID
todo help | -h | --help
todo --version

When no arguments are passed, Todoman will list all todos, along with their IDs. IDs are not immutable, and will change as you add/delete new entries.

Sample output:

Output sample:
[ ] ! 2015-04-30 Close bank account (0%)
[ ] !            Send minipimer back for warranty replacement (0%)
[X]   2015-03-29 Buy soy milk (100%)
[ ]              Fix the iPad's screen (0%)
[ ]              Fix the Touchad battery (0%)

If you want to synchronize your todos, you'll needs something that syncs via CalDAV. vdirsyncer is the recommended tool for this.

Advanced configuration

You can set a color for each task list by creating a color file containing a colorcode in the format #RRGGBB. To show those colors in the terminal, you'll need a terminal supporting TrueColor.

See also this issue about metadata for collections in vdirsyncer.

LICENCE

Todoman is licensed under the MIT licence. See LICENCE for details.

About

A simple CalDav-based todo manager.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%