taskwarrior
installation
git clone https://github.com/GothenburgBitFactory/taskwarrior.git
cd taskwarrior
cmake -DCMAKE_INSTALL_PREFIX=~/opt .
make
make install
alternate task list
If for example you want to do some testing of how recurrence works, you can specify a testing data directory, as described here
https://taskwarrior.org/docs/configuration.html#override
So for example,
“cron”
# /etc/systemd/system/task.timer
[Unit]
Description=run task.service on timer
[Timer]
OnUnitActiveSec=10s
OnBootSec=10s
[Install]
WantedBy=timers.target
# /etc/systemd/system/task.service
[Unit]
Description=run task and sync
[Service]
Type=oneshot
ExecStart=/bin/bash /home/ubuntu/bin/run_task_and_sync.sh
User=ubuntu
Group=ubuntu
after that reload the systemd using command systemctl daemon-reload and start your timer by systemctl start test.timer, or enable them by default.
test content of 1.sh
systemctl list-timers
https://unix.stackexchange.com/questions/198444/run-script-every-30-min-with-systemd
http://blog.dcycle.com/blog/112/systemd-replacement-cron-every-10-seconds/
usage
modifying description vs adding an annotation
There are two ways to add an annotation, either with `task <filter> annotate this is an annotation`, or `task <filter> done this is an annotation`.
Other commands seem to modify the description instead. If you want to simultaneously update the description, can do for example `task <filter> modify status:completed this is the new description`. Note that you can’t abbreviate `status` as for example, `sta`, here.
the commands
from https://taskwarrior.org/docs/commands/
add | Add a new task |
annotate | Add an annotation to a task |
append | Append words to a task description |
calc | Expression calculator |
config | Modify configuration settings |
context | Manage contexts |
count | Count the tasks matching a filter |
delete | Mark a task as deleted |
denotate | Remove an annotation from a task |
done | Complete a task |
duplicate | Clone an existing task |
edit | Launch your text editor to modify a task |
execute | Execute an external command |
export | Export tasks in JSON format |
help | Show high-level help, a cheat-sheet |
import | Import tasks in JSON form |
log | Record an already-completed task |
logo | Show the Taskwarrior logo |
modify | Modify one or more tasks |
prepend | Prepend words to a task description |
purge 2.6.0 | Completely removes tasks, rather than change status to deleted |
start | Start working on a task, make active |
stop | Stop working on a task, no longer active |
synchronize | Syncs tasks with Taskserver |
undo | Revert last change |
version | Version details and copyright |
contexts
from https://taskwarrior.org/docs/context.html
big picture
once you understand how to add
tasks and that they can have various attributes like dates, tags, etc, I think the next thing to note is as you list them, various filters and sorts are used (as well as limiting number of results).
attributes
a task has a description, an id, annotations, tags, project, status, date aspects, like created, last modified, history of edits, due, scheduled, wait, until, user defined attributes like the default priority.
time:
Taskwarrior - Using Dates Effectively
due:
due.any:
due.none:
scheduled:
ready
+READY
wait:
waiting
all +WAITING
until:
+UNTIL
Taskwarrior - How Recurrence Works
status:Recurring (template)
+PARENT
+CHILD
recurring
reports
report.next.columns
report.next.description
report.next.filter
report.next.labels
report.next.sort
The report will be a table, with a description
, columns
, labels
.
To the rows, will be applied a filter
and a sort
.
To see the available columns
, try
> task _columns
depends
description
due
end
entry
estimate
id
imask
last
mask
modified
parent
priority
project
recur
reviewed
rtype
scheduled
start
status
tags
template
until
urgency
uuid
wait
Let’s make a report fetch
.
report.fetch.description = Show items to get, bring
report.fetch.columns = description
report.fetch.labels = Description
report.fetch.filter = status:pending (+get or +bring)
report.fetch.sort = urgency-
If you wanted to see examples of for example filters, you can try task show filter
.
configuration on command line
From https://taskwarrior.org/docs/syntax.html, we note we can do things like
task calendar rc.calendar.weekstart=Monday
Can check for available config variables in man taskrc
(or task
show
).
modifiers
Want to filter out a project from your view?
https://taskwarrior.org/support/faq.html#q14
See ‘man task’, for the
ATTRIBUTE MODIFIERS
andEXPRESSIONS AND OPERATORS
sections.
limiting view to overdue tasks, to delete old recurrence items
Oh, this is easy, quickly found it in the FAQ https://taskwarrior.org/support/faq.html#q17.
it’s also in this section about virtual tags.