# taskwarrior aka `task` cheatsheet: `/usr/share/doc/task/task-ref.pdf` # config task show # usage task ## 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