taskwarrior aka task
cheatsheet: /usr/share/doc/task/task-ref.pdf
config
task show
usage
task <filter> <command> <modifications> <misc>
filter
task filter1 filter2 # defaults to `and`
task filter1 or filter2
task \( filter1 or filter2 \) # prevent precedence fuckup
task /sync/ # search term can be delimited w/ `/`
task /reg[ex]*p/
task rc.regex:off /reg[ex]*p/ # turn off regexp
task description~foo list # search in desc
task 'desc!~foo' list # invert
commands
add, delete
append, prepend: modify task by prepending/appending text
count: count tasks matching filter
modify
edit: interactive, uses $EDITOR
start, stop, done
synchronize: sync w/ server
undo
advanced commands
annotate, denotate
purge: completely remove task rather than changing status to deleted
reports
active: started tasks, also +ACTIVE
blocked, blocking
list, long, ls, minimal
newest, oldest
overdue
ready, unblocked: omit blocked tasks
recurring, waiting
timesheet: done-list for current week
history, ghistory
information: list all attributes
contexts
task context name # enter context
task context none # leave context
attributes
attribute:value
depends:id, depends:-id: add, remove dependency
+tag, -tag: add / remove tag, mustn't start w/ number
+next: special tag
projects
summary: list project progress
projects: list projects w/ task count
project:name
project:name.subname
project.not:name
priority
priority: values H/M/L, by default low is higher than none
- regarding to doc
uda.priority.values H,M,,L should set L lower than
none, but doesn't work for me, instead set
urgency.uda.priority.L.coefficient to something negative
dates
due: must be completed on
scheduled: when will be ready to work on, use task ready or task +READY list
wait: hide until, use task waiting to see hidden tasks
until: when task will auto expire
entry, end: creation, completion/deletion
date filters
due:today, +TODAY
due.any and due.none
+WEEK, +DUE: this and next week
+YESTERDAY, +TOMORROW, +MONTH, +YEAR
date format and names
- iso is supported
5s, 5 s, 5sec, 5seconds: don't think too much
min, h, d, w, m, y: "m" in month
now, today
yesterday, tomorrow
eod, sod (end/start of day)
monday, tuesday, ... next matching day
january, february, ... next matching start of month
later, someday: far future
soy, eoy (start/end of year)
soq, eoq (start/end of quarter)
som, eom (start/end of month)
sow, eow (start/end of week)
soww, eoww (start/end of work week)
1st, 2nd, ... (next nth of month)
"start" usually refers to next month, year, ..., unless c for current is
given, like socm.
virtual tags
LATEST, last task added
TODAY, don't task due:today which matches only 00:00:00
BLOCKED, UNBLOCKED, BLOCKING
ACTIVE, READY, PENDING
SCHEDULED, UNTIL, WAITING
PARENT, CHILD: something with recurring
COMPLETED, DELETED
PRIORITY, PROJECT
configure urgency
# make `+bug` more urgent
task config urgency.user.tag.bug.coefficient 4.5
# make `+later` less urgent
task config urgency.user.tag.later.coefficient -6.0
# boost given project
task config urgency.user.project.Home.coefficient 2.9
# nullify effect of being blocked
task config urgency.blocked.coefficient 0.0
tools
- tasknc: ncurses interface, broken or slow
- bugwarrior: pull issues from github
web ui:
~/.gem/ruby/2.4.0/bin/task-web
tasksh
a shell wrapper that
- includes every command
- introduces
review (once a week)
- review kinda breaks shell history