Package: todotxt-machine
todotxt-machine is an interactive terminal basedtodo.txtfile editor with an interface similar
tomutt. It followsthe todo.txt
formatand stores todo items in plain text.In ActionFeaturesView your todos in a list with helpful syntax highlightingArchive completed todosDefine your own colorschemesTab completion of contexts and projectsFilter contexts and projectsSearch for the todos you want with fuzzy matchingSort in ascending or descending order, or keep things unsortedClickable UI elementsRequirementsPython 2.7 or Python 3.4 on Linux or Mac OS X.todotxt-machine 1.1.8 and earlier drew its user interface using only raw
terminal escape sequences. While this was very educational it was
difficult to extend with new features. Version 2 and up usesurwidto draw its interface and is much
more easily extendable.InstallationUsingpippip install todotxt-machineManuallyDownload or clone this repo and run thetodotxt-machine.pyscript.git clone https://github.com/AnthonyDiGirolamo/todotxt-machine.git
cd todotxt-machine
./todotxt-machine.pyCommand Line Optionstodotxt-machine

Usage:
  todotxt-machine
  todotxt-machine TODOFILE [DONEFILE]
  todotxt-machine [--config FILE]
  todotxt-machine (-h | --help)
  todotxt-machine --version
  todotxt-machine --show-default-bindings

Options:
  -c FILE --config=FILE               Path to your todotxt-machine configuraton file [default: ~/.todotxt-machinerc]
  -h --help                           Show this screen.
  --version                           Show version.
  --show-default-bindings             Show default keybindings in config parser format
                                      Add this to your config file and edit to customizeConfig FileYou can tell todotxt-machine to use the same todo.txt file whenever it
starts up by adding afileentry to the~/.todotxt-machinercfile. If you want to archive completed tasks, you can specify a done.txt
file using anarchiveentry. You can also set you preferred
colorscheme or even define new themes. Here is a short example:[settings]
file = ~/todo.txt
archive = ~/done.txt
colorscheme = myawesomethemeColor Schemestodotxt-machine currently supportssolarizedandbase16colors.Pictured above are the following themes from left to right:base16-lightbase16-darksolarized-lightsolarized-darkHere is a config file with a complete colorscheme definition:[settings]
file = ~/todo.txt
colorscheme = myawesometheme

[colorscheme-myawesometheme]
plain=h250
selected=,h238
header=h250,h235
header_todo_count=h39,h235
header_todo_pending_count=h228,h235
header_todo_done_count=h156,h235
header_file=h48,h235
dialog_background=,h248
dialog_color=,h240
dialog_shadow=,h238
footer=h39,h235
search_match=h222,h235
completed=h59
context=h39
project=h214
creation_date=h135
due_date=h161
priority_a=h167
priority_b=h173
priority_c=h185
priority_d=h77
priority_e=h80
priority_f=h62You can add colorschemes by adding sections with names that start withcolorscheme-. Then under the[settings]section you can say
which colorscheme you want to use.The format for a color definitions is:name=foreground,backgroundForeground and background colors are follow the 256 color formatsdefined by
urwid.
Here is an excerpt from that link:High colors may be specified by their indexh0, …,h255or
with the shortcuts for the color cube#000,#006,#008,
…,#fffor gray scale entriesg0(black from color cube) ,g3,g7, …g100(white from color cube).You can see all the colors definedhere.I recommend you leave the foreground out of the following definitions by
adding a comma immediately after the=selected=,h238
dialog_background=,h248
dialog_color=,h240
dialog_shadow=,h238If you want to use your terminal’s default foreground and background
color use blank strings and keep the comma:dialog_background=,Let me know if you make any good colorschemes and I’ll add it to the
default collection.Key BindingsYou can customize any key binding by adding a setting to the[keys]section of your config file~/.todotxt-machinerc.For a list of the default key bindings run:todotxt-machine --show-default-bindingsYou can easily append this to your config file by running:todotxt-machine --show-default-bindings >> ~/.todotxt-machinercWhen you edit a key binding the in app help will reflect it. Hithor?to view the help.Known IssuesOSXOn Mac OS hittingctrl-ysuspends the application. Runstty dsusp undefto fix.Mouse interaction doesn’t seem to work properly in the Apple
Terminal. I would recommend usingiTerm2or
rxvt / xterm inXQuartz.TmuxWith tmux the background color in todotxt-machine can sometimes be
lost at the end of a line. If this is happening to you set your$TERMvariable toscreenorscreen-256colorexport TERM=screen-256colorPlanned Features[STRIKEOUT:User defined color themes][STRIKEOUT:Manual reordering of todo items][STRIKEOUT:Config file for setting colors and todo.txt file location][STRIKEOUT:Support for archiving todos in done.txt][STRIKEOUT:Custom keybindings]Add vi readline keybindings. urwid doesn’t support readline
currently. The emacs style bindings currently available are emulated.UpdatesSee thelog
here