{...}: { imports = [ ./hooks ]; programs.taskwarrior = let mkContext = project: { inherit (project) name; value = { read = "project:${project.name}"; write = "project:${project.name}"; rc = { neorg_path = "${project.prefix}/${project.name}/index.norg"; }; }; }; context = builtins.listToAttrs (builtins.map mkContext (import ./projects {})); in { enable = true; colorTheme = ./nord.theme; config = { news.version = "2.6.0"; complete.all.tags = true; list.all = { projects = true; tags = true; }; regex = true; weekstart = "Monday"; uda = { total_active_time = { type = "duration"; label = "Total active time"; }; }; alias = { a = "add"; bd = "burndown.daily"; cx = "context"; e = "edit"; mod = "modify"; n = "execute neorg --task"; }; color = true; report = { next = { columns = "id,start.age,entry.age,total_active_time,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency"; context = 1; description = "Most urgent tasks"; filter = "status:pending -WAITING limit:page"; labels = "ID,Active,Age,tAge,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg"; sort = "urgency-"; }; }; inherit context; }; }; }