1. open-source. 2. One command away from my editor(I only use desktop for taking notes), also synced to my dropbox in case. 3. Amazing extensibility with plugins and custom scripts. Eg: bugwarrior + pomodoro(using Timewarrior, I've used this a lot when freelancing, not so much now) + some custom scripts. 4. Journaling - custom generated template of what I need to records/daily tasks etc. 5. Viewports in taskwiki are amazing, eg: for any project related notes I can do write `# Task | project:Pro1 and +PENDING` to list pending tasks in Pro1, you can also configure to use tags like development, bug reports etc.
I couldn't find another tool that is as extensible. The downside is you need to dedicate a weekend to understanding and setup!
One can add a function in rc files to commit and push to version control, if the `.task` directory is a git repo:
function tupd() {
git -C ~/.task commit -a -m "Update tasks $(whoami)@$(hostname)"
git -C ~/.task push
}
TaskWarrior has hooks[0] to execute arbitrary scripts (on-launch, on-exit, on-add, on-modify) so one can write a script that takes accepts JSON input.I also have a transformer script that generates markdown from a specific project's tasks and annotations, with headings and lists, and commit to a project's wiki that is a git repository, and push the changes.
I had an alias named `note`:
alias note='vi +star +'\''normal Go'\'' +'\''r!date +\%F\ \%T'\'' ~/workspace/notes/notes.md +'\''normal Go'\'' +'\''normal Go'\'
And also one named `lesson`, where I write down mistakes I make, from arriving late (meaning only arriving 15 minutes in advance) to a meeting to some consequence of an assumption, to removing one line of code I thought wasn't useful causing a bug.It's been a long time I haven't updated it. Not because I'm perfect, but because I'm not.