Taskwarrior Configuration

Installation

Install base packages and setup environment redirection.
apt install taskwarrior timewarrior libjson-perl

Add environment variables to bash.

0644 user user ~/.bashrc
export TASKRC=~/task/.taskrc
export TIMEWARRIORDB=~/task/timew
alias taskopen='taskopen -c ~/task/taskopen/.taskopenrc'
Create a default taskwarrior configuration.
task
Install taskopen.
git clone https://github.com/ValiValpas/taskopen
cd taskopen
make PREFIX=/usr install
mkdir -p ~/task/taskopen ~/task/tasknotes
taskopen -c ~/.task/taskopen/.taskopenrc
Copy timewarrior hook to auto track tasks.
cp /usr/share/doc/timewarrior/ext/on-modify.timewarrior ~/task/hooks
chmod +x ~/task/hooks/on-modify.timewarrior
Verify it loads, should see Hooks Enabled.
task diagnostics

Hooks
     System: Enabled
   Location: /home/{USER}/task/hooks
     Active: on-modify.timewarrior (executable)
   Inactive:

Customize Taskwarrior

Displayed without comments / unchanged lines.

0644 user user ~/task/.taskrc
  1# From taskrc man page https://linux.die.net/man/5/taskrc
  2displaydweeknumber=no
  3dateformat=Y-M-D
  4dateformat.report=Y-M-D
  5dateformat.holiday=YMD
  6dateformat.annotation=Y-M-D
  7
  8# Files
  9data.location=~/task
 10
 11# Color theme (uncomment one to use)
 12include /usr/share/taskwarrior/dark-256.theme
 13
 14# show tracking time
 15journal.time=on
 16
 17# Default burndown to daily
 18alias.burndown=burndown.daily
 19
 20# punt push to next day
 21alias.punt=modify wait:1d
 22
 23# someday shortcut
 24alias.someday=mod +someday wait:someday
 25
 26# Shortcuts
 27alias.dailystatus=status:completed end.after:today all
 28
 29# Set active task indicator
 30active.indicator=>
 31
 32# Case insensitive search
 33search.case.sensitive=no
 34
 35# Remove more urgent tasks nag message on commands.
 36nag=
 37
 38# Remove task header section (taskrc redirection notification, command run).
 39verbose=blank,footnote,label,new-id,new-uuid,affected,edit,special,project,sync,unwait,recur
 40
 41# Only set urgency based on priority and due date.
 42urgency.active.coefficient=6.0
 43urgency.age.coefficient=0.0
 44urgency.age.max=0.0
 45urgency.annotations.coefficient=0.0
 46urgency.blocked.coefficient=0.0
 47urgency.blocking.coefficient=0.0
 48urgency.due.coefficient=12.0
 49urgency.inherit=on
 50urgency.project.coefficient=0.0
 51urgency.scheduled.coefficient=0.0
 52urgency.tags.coefficient=0.0
 53urgency.user.tag.next.coefficient=0.0
 54urgency.waiting.coefficient=0.0
 55
 56# Add UDA task estimation in minutes, default 30.
 57uda.estimate.type=string
 58uda.estimate.label=Est
 59uda.estimate.default=30
 60
 61# Add UDA priority, A-Z, default Z, urgency modifications, coloring
 62uda.priority.label=Priority
 63uda.priority.type=string
 64uda.priority.values=a,b,c,d,z
 65uda.priority.default=z
 66color.uda.priority.a=color255
 67color.uda.priority.b=color245
 68color.uda.priority.c=color250
 69color.uda.priority.d=color009
 70urgency.uda.priority.a.coefficient=6.0
 71urgency.uda.priority.b.coefficient=3.9
 72urgency.uda.priority.c.coefficient=1.8
 73urgency.uda.priority.d.coefficient=0.7
 74urgency.uda.prirotiy.z.coefficient=-6.0
 75
 76# Add contexts.
 77context.accounts=+accounts
 78context.apartment=+apartment
 79context.computer=+computer
 80context.exercise=+exercise
 81context.food=+food
 82context.games=+games
 83context.hacking=+hacking
 84context.hardware=+hardware
 85context.ideas=+ideas
 86context.inspiration=+inspiration
 87context.job=+job
 88context.links=+links
 89context.media=+media
 90context.moving=+moving
 91context.organization=+organization
 92context.personal=+personal
 93context.programming=+programming
 94context.travel=+travel
 95context.windows=+windows
 96context.salt=+salt
 97context.download=+download
 98context.telemetry=+telemetry
 99context.linux=+linux
100context.achievements=+achievements
101
102# Add Estimate to report list, remove urgency, tags.
103report.list.columns=id,start.age,entry.age,depends.indicator,priority,estimate,project,recur.indicator,scheduled.countdown,due,until.remaining,description.count
104report.list.labels=ID,Active,Age,D,P,Est,Project,R,Sch,Due,Until,Description
105# Remove age, urgency, tags; add estimate to task list report.
106report.list.labels=ID,Active,D,P,Est,Project,R,Sch,Due,Until,Description
107report.list.columns=id,start.age,depends.indicator,priority,estimate,project,recur.indicator,scheduled.countdown,due,until.remaining,description.count
108# Remove age, urgency, tags from task next report.
109report.next.labels=ID,Active,Deps,P,Est,Project,Recur,S,Due,Until,Description
110report.next.columns=id,start.age,depends,priority,estimate,project,recur,scheduled.countdown,due.relative,until.remaining,description
111# Remove age, urgency to task all report.
112report.all.labels=ID,St,UUID,A,Done,D,P,Est,Project,Tags,R,Wait,Sch,Due,Until,Description
113report.all.columns=id,status.short,uuid.short,start.active,end.age,depends.indicator,priority,estimate,project.parent,tags.count,recur.indicator,wait.remaining,scheduled.remaining,due,until.remaining,description

Customized Timewarrior

Displayed without comments / unchanged lines.

0644 user user ~/task/timew/timewarrior.cfg
 1import /usr/share/doc/timewarrior/doc/themes/dark.theme
 2
 3define exclusions:
 4  monday    = <10:00>17:00
 5  tuesday   = <10:00>17:00
 6  wednesday = <10:00>17:00
 7  thursday  = <10:00>17:00
 8  friday    = <10:00>17:00
 9  saturday  = <10:00>17:00
10  sunday    = <10:00>17:00

Customize Taskopen

Displayed without comments / unchanged lines.

0644 user user ~/task/taskopen/.taskopenrc
 1#BROWSER='xdg-open $FILE &>/dev/null'
 2EDITOR='subl'
 3#FILE_CMD='xdg-open'
 4TASKBIN='task'
 5
 6# If you sync tasks NOTES_FOLDER should be a location that syncs and is available to
 7# other computers, i.e. /users/dropbox/tasknotes
 8# NOTES_FOLDER to store notes in, must already exist!
 9NOTES_FOLDER="$HOME/task/tasknotes/"
10
11# Preferred extension for tasknotes
12NOTES_EXT=".md"
13
14# Regular expression that referes to the NOTES_FILE.
15# Default is: Notes
16NOTES_REGEX="notes"

References

  1. Taskwarrior Examples

  2. Taskwarrior Commands

  3. Manage tasks with Taskwarrior

  4. Taskwarrior Tutorials (some takeaways, generally crappy)