Michel is a bridge between google tasks and plain text files.
First, we save our tasks in a file:
michel pull > ~/.TODO
~/.TODO now contains our tasks, as a tab-indented list:
shopping milk cheese butter work call Joe prepare presentation
We will then edit our tasks. Let's add "coffee" in the shopping list. The syntax is to use one line per item, and in order to make an item part of a sublist, one needs to put a tab caracter in front of it:
shopping coffee milk cheese butter work call Joe prepare presentation
We can now upload our new task list to gtasks:
michel push ~/.TODO
At the first run, you will be prompted an url. Click it, authorize michel. You're done! Michel will save the authorization token as $XDG_DATA_HOME/michel/oauth.dat. No other data about your account is stored, and this token is the only information michel needs to access your tasks.
Michel keeps it stupid simple. It only has the two previously mentionned commands:
Print the default todo list on the standard output
michel push <TODO.txt>
Replace the default todo list with the content of TODO.txt
Here is how the author uses michel. A crontask pulls every 15 minutes the default TODO list, and another one displays a notification during 10 seconds every hour (requires notify-send).
*/15 * * * * michel pull > /tmp/TODO && mv /tmp/TODO ~/.TODO 0 * * * * DISPLAY=":0.0" notify-send -t 10000 TODO "$(cat ~/.TODO)"
After you modify your TODO list, don't forget to push it!
michel push .TODO
If this trick is not working, it is probably because the variable PATH does not contains /usr/local/bin in crontab. You might want to set it manually. See 'man 5 crontab'.
Michel aims at being simple: it does not handle due dates nor notes. Do NOT use michel on your tasks list if it contains such information: it will wipe it.
install python-xdg, then run
pip install michel
- License: Public Domain
- Original author: Christophe-Marie Duquesne (blog post)
Patches are welcome, as long as they keep the source simple and short.