I started using taskwarrior, an aggressively named task management system. Here are some notes and discussion about how that goes.
To install taskwarrior on my main lappy running Fedora 28, I used:
sudo dnf install task
task 2.5.1 built for linux
which appears to be the latest stable. That’s great.
The taskwarrior website has pretty bad navigation between pages, but there are some gems to be found.
One is a wrapper script called tasksh, which is used for reviewing tasks. It basically uses a tagging and timestamping system to put your tasks in a review queue, so as you add things and push them off nothing gets lost or stays around longer than it needs.
I only have a few days of tasks, but I’ve already been
wait-ing and setting
due dates that put them in the future, and some are already done that I haven’t checked. So this is a useful utility!
Trying to create recurring, morning tasks to help me get my routines started. Here is a sample I’ve come up with:
task add due:2018-10-14T10:00 wait:2018-10-14T7:00 recur:daily Caffeine!
I couldn’t get
due to work without the full datetime expression, but it works that way. I added
wait because I don’t want to see them before 7am, and I want it to bug me if I haven’t done it by 10am.
One thing I am gonna do is add a
priority:H, as that is a very important piece of my day:
$ task 27 mod priority:H Modifying task 27 'Caffeine!'. This is a recurring task. Do you want to modify all pending recurrences of this same task? (yes/no) yes Modified 1 task.
Now I should add one for breakfast, and any other thing I have to do on the regular.
Treating todo like inbox zero, ftw.
Why would I ever use
calc? As explained in Taskwarrior - FAQ
due-2daysvalue is evaluated by Taskwarrior, using the value you specified for the due date and subtracting two days. You can also verify that date using the
$ task calc eom-2days 2018-01-30T00:00:00
That makes setting recurring
waits, because I want them to show up when I am ready, not when they are due…
task add priority:L due:eod recur:daily wait:due-6h Log daily activities
That makes a low priority (still higher than default) due at the end of each day, and waits until 6PM to show it on my next list.
Some of the tasks weren’t popping for me, and I don’t like squinting. I do love solarized, but my terminal is set to default dark colors, and I don’t feel like customizing that. So after looking at the various themes I decided on
A little plain, but that is the point, ne?
All the themes are listing in
# Color theme (uncomment one to use) #include /usr//usr/share/task/light-16.theme #include /usr//usr/share/task/light-256.theme #include /usr//usr/share/task/dark-16.theme #include /usr//usr/share/task/dark-256.theme #include /usr//usr/share/task/dark-red-256.theme #include /usr//usr/share/task/dark-green-256.theme #include /usr//usr/share/task/dark-blue-256.theme #include /usr//usr/share/task/dark-violets-256.theme #include /usr//usr/share/task/dark-yellow-green.theme include /usr/share/task/dark-gray-256.theme #include /usr//usr/share/task/dark-gray-blue-256.theme #include /usr/share/task/solarized-dark-256.theme #include /usr/share/task/solarized-light-256.theme #include /usr//usr/share/task/no-color.theme
Notice they have incorrect paths, so make sure to change it for your system.
scheduled, but I think all I really need is
I think it’s when your tasks are all done?
Current confidence levels: Uncertain
I don’t like seeing blocked items on my next list, which is also my default command (so when I use
task on its own). I saw the example for “Joshua” that included this gem:
- Which is your default report?
Task next, with customized filter and sort order:
rc.report.next.filter=status:pending,+UNBLOCKED however broke my report. That reaaaaaaaly bugged me. I couldn’t even from
Then I found example at Taskwarrior - Filters to see which filter is showing for a command. That’s when I noticed by default my
next was filtered as such:
[maiki@yuzu ~]$ task show next Config Variable Value color.tag.next bold white Default value rgb440 report.next.columns id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency report.next.description Most urgent tasks report.next.filter status:pending +UNBLOCKED Default value status:pending limit:page report.next.labels ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg report.next.sort urgency- urgency.user.tag.next.coefficient 15.0 Some of your .taskrc variables differ from the default values. These are highlighted in color above.
status:pending limit:page! Aha, no comma. Sheesh, I’m not even sure of what all these things are called exactly, but it doesn’t help when the first example on the Workflow Examples page doesn’t work…
As you can see from the above output, my override is:
That gets what I want.
I’ve experimented with
due dates, and
tags. They each have neat ways of modifying urgency and sorting tasks. However, I am gonna try using just tags for a bit.
Projects are neat, but I can track them with just tags right now. I don’t have another dimension to monitor, tags just work. It also goes a lot faster. Compate:
task add project:client Do the thing task add Do the thing +client
Priority is neat, but really is just another way to divi up sorting on a subset of tasks, which I don’t need at hte moment… unless I keep them in recurring tasks. I’ve kinda created blocks of those, so when they show up I like them having a certain order. But maybe I can get by with
Due dates… argh! Okay, my issue with due dates are, they make me anxious. Like, I need a due date to be soft, not hard. Because when a due date happens, it is basically too late… but this is because I’ve never had a review process for my tasks. It is possible that I could acclimate to this paradigm… but I might just use
wait and freak out anyhow. Brave new world!
So tags, and
depends. Because I love me some dependencies!
I’ve only converted to solely tags an hour ago, and already it is improving my context switching!
C is home sick, so while talking to em I can go over
task +home, and it gives me the chores at home. Super handy!
I thought maybe
someday were configurable special times, but from Taskwarrior - Date & Time :
Local 2038-01-18, with time 00:00:00. A date far away, with semantically meaningful to GTD users.
Cool, now I know! Still useful, for waiting. I can shove stuff into a cache of future tasks, and catch them in review with tasksh.
I forget why that is meaningful to GTD users. Anyone know?
And some other nerds: maiki: "Why is 2038-01-18 semantically meaningful to GTD …" - Mastodon @ SDF
snowdusk will be a half cyborg, so that means I should get in close to have a powerful ally, but not so close as to be personally derailed by whatever horrific accident causes the tranformation…
30m = 30 months. 30min = 30 minutes.
Hey, check it out, there is a value, now:
Net Fix Rate: 1.6/d Estimated completion: 2018-11-18 (4w)
I feel like I complete more than 2 a day, so I’ll have to check what the Fix Rate is. Maybe an estimation of how long everything is complete if I don’t increase the rate at which I generate tasks, over time?
I know this is less a taskwarrior tip and more a conceptual stance on repetition, but I’ve been experimenting with a recurrence system I think is both novel and silly: random amounts of days!
task add The oddly recurring thing due:eod wait:due recur:17d
That makes a task that recurs every 17 days. Because something I have things I need to do periodically, but not that often, and not on a clean date. I have a lot of things to do each weekend, beginning of the month, 15th, etc. This let’s me push tasks into a loop that is easier to break, because it just pops up outside the spikes of activity.
recur is useful for other tasks, as well, such as lists.
For instance, I’m moving a bunch of domains and sites from a hosting place to new homes. I’ve had a task for a while, “Create list to process hosting items” (yeah, that’s how I talk to myself, deal).
That was sitting there for 8 days, my brain didn’t want to start busy work. And then other, meta-tasks started showing up. Which was surprising, since I had other processes working. Then it clicked.
When I need to start a project, such as being in a meeting with the person, or getting paid, I just create a process recurrence, a ticket that says, “do an increment for the thing”.
So now I have a
recur:2d for “Process a hosting asset”, and that works for me! I’ll get it done over time, and I don’t have to think about it.