244 lines
8 KiB
Nix
244 lines
8 KiB
Nix
{pkgs, ...}: {
|
|
home.packages = with pkgs; [
|
|
taskwarrior2
|
|
taskwarrior-tui
|
|
tasksh
|
|
vit
|
|
timewarrior
|
|
];
|
|
programs.taskwarrior = {
|
|
enable = true;
|
|
colorTheme = "dark-green-256";
|
|
dataLocation = "~/.task";
|
|
config = {
|
|
weekstart = "Monday";
|
|
burndown = {
|
|
cumulative = 0;
|
|
};
|
|
journal = {
|
|
info = "no";
|
|
time = "yes";
|
|
};
|
|
default = {
|
|
project = "inbox";
|
|
command = "nnext";
|
|
width = 140;
|
|
};
|
|
alias = {
|
|
burn = "burndown";
|
|
cal = "calendar";
|
|
copy = "duplicate";
|
|
cp = "duplicate";
|
|
tom = "tomorrow";
|
|
};
|
|
report = {
|
|
_reviewed = {
|
|
columns = "uuid";
|
|
description = "Tasksh review report. Adjust the filter to your needs.";
|
|
filter = "( reviewed.none: or reviewed.before:now-4weeks ) and ( +PENDING or +WAITING ) and -someday and project.not:books";
|
|
sort = "reviewed+,modified+";
|
|
};
|
|
mine = {
|
|
columns = "description.count,id";
|
|
description = "strip";
|
|
filter = "-COMPLETED -DELETED -PARENT";
|
|
labels = "desc,ID";
|
|
sort = "description ";
|
|
};
|
|
next.filter = " status:pending limit:page -BLOCKED -someday -WAITING";
|
|
inbox = {
|
|
columns = " id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
|
|
description = "list inbox items";
|
|
filter = " status:pending limit:10 -BLOCKED -someday -WAITING proj:inbox";
|
|
labels = " ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg";
|
|
sort = " urgency-";
|
|
context = " 0";
|
|
};
|
|
waiting = {
|
|
columns = " id,start.age,entry.age,depends,priority,project,tags,recur,wait,due,until.remaining,description,urgency";
|
|
description = "Waiting";
|
|
filter = " status.not:deleted status.not:completed -BLOCKED -someday +WAITING";
|
|
labels = " ID,Active,Age,Deps,P,Project,Tag,Recur,Wait til,Due,Until,Description,Urg";
|
|
sort = " wait";
|
|
};
|
|
nnext = {
|
|
columns = " id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
|
|
description = "Next 10 list";
|
|
filter = " status:pending limit:10 -BLOCKED -someday -WAITING";
|
|
labels = " ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg";
|
|
sort = " urgency-";
|
|
};
|
|
title = {
|
|
columns = " id,project,description.count";
|
|
description = "title only, please";
|
|
filter = " status:pending limit:10 ";
|
|
#filter = " status:pending limit:10 -BLOCKED -WAITING";
|
|
labels = " ID,Project,Description";
|
|
sort = " description+";
|
|
};
|
|
anext = {
|
|
columns = " id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
|
|
description = "Next 10 list";
|
|
filter = " status:pending limit:10 -BLOCKED -WAITING";
|
|
labels = " ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg";
|
|
sort = " urgency-";
|
|
};
|
|
last = {
|
|
columns = " id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency";
|
|
description = "Oldest 10 list";
|
|
filter = " status:pending limit:10 -BLOCKED -someday -WAITING";
|
|
labels = " ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg";
|
|
sort = " entry+";
|
|
};
|
|
inboxdash = {
|
|
columns = " id,project,description.count";
|
|
description = "Inbox for dashboards";
|
|
filter = " status:pending limit:10 -BLOCKED -someday -WAITING proj:inbox";
|
|
labels = " ID,Project,Description";
|
|
sort = " urgency-";
|
|
};
|
|
dash = {
|
|
columns = " id,project,description.count";
|
|
description = "For dashboards";
|
|
filter = " status:pending limit:10 -BLOCKED -someday -WAITING";
|
|
labels = " ID,Project,Description";
|
|
sort = " urgency-";
|
|
};
|
|
mail = {
|
|
columns = " id,priority,project,due.relative,until.remaining,description.count,urgency";
|
|
description = "Next 5 list";
|
|
filter = " status:pending limit:5 -BLOCKED -someday -WAITING";
|
|
labels = " ID,P,Project,Due,Until,Description,Urg";
|
|
sort = " urgency-";
|
|
};
|
|
followup = {
|
|
columns = " id,start.age,entry.age,priority,project,description";
|
|
description = "Someday list";
|
|
filter = " status.not:completed status.not:deleted -BLOCKED +followup";
|
|
labels = " ID,Active,Age,P,Project,Description";
|
|
sort = " project,urgency-";
|
|
context = " 0";
|
|
};
|
|
someday = {
|
|
columns = " id,start.age,entry.age,priority,project,description,urgency";
|
|
description = "Someday list";
|
|
filter = " status:pending -BLOCKED +someday limit:page -WAITING";
|
|
labels = " ID,Active,Age,P,Project,Description,Urg";
|
|
sort = " project,urgency-";
|
|
context = " 0";
|
|
};
|
|
};
|
|
|
|
taskd = {
|
|
ca = "/home/don/.task/ca.cert.pem";
|
|
certificate = "/home/don/.task/don_harper.cert.pem";
|
|
credentials = "duckland.org/Don Harper/de27c234-6217-4e8b-83c1-2ea840bac55f";
|
|
key = "/home/don/.task/don_harper.key.pem";
|
|
server = "task.duckland.org:53589";
|
|
recurrence = "on";
|
|
};
|
|
|
|
uda = {
|
|
priority = {
|
|
label = "Priority";
|
|
type = "string";
|
|
values = "H,M,,L";
|
|
};
|
|
reviewed = {
|
|
label = "Reviewed";
|
|
type = "date";
|
|
};
|
|
notes = {
|
|
type = "string";
|
|
label = "Notes";
|
|
};
|
|
blocks = {
|
|
type = "string";
|
|
label = "Blocks";
|
|
};
|
|
};
|
|
|
|
urgency = {
|
|
blocking.coefficient = 2;
|
|
uda = {
|
|
recur.coefficient = 4;
|
|
priority = {
|
|
H.coefficient = 5;
|
|
L.coefficient = -0.5;
|
|
M.coefficient = 3.9;
|
|
};
|
|
};
|
|
user = {
|
|
project = {
|
|
blogging.coefficient = 3;
|
|
books.coefficient = -0.5;
|
|
dinner.coefficient = 5;
|
|
family.coefficient = 5;
|
|
fashion.coefficient = -0.5;
|
|
job.coefficient = 7;
|
|
photo.coefficient = 4;
|
|
selfhosted.fix.coefficient = 2;
|
|
};
|
|
tag = {
|
|
next.coefficient = 3;
|
|
breakgoals.coefficient = 10;
|
|
GTD.coefficient = 5;
|
|
};
|
|
};
|
|
};
|
|
context = {
|
|
selfhost = "project:selfhosted";
|
|
gtd.read = "+GTD";
|
|
gtd.write = "+GTD";
|
|
job.read = "proj:job";
|
|
job.write = "proj:job";
|
|
selfhosted.read = "proj:selfhosted";
|
|
selfhosted.write = "proj:selfhosted";
|
|
work.read = "proj:work";
|
|
work.write = "proj:work";
|
|
review.read = "-someday -WAITING project.not:books";
|
|
review.write = "-someday -WAITING project.not:books";
|
|
};
|
|
color.project.weekly-review = "on rgb510";
|
|
news.version = "2.6.0";
|
|
};
|
|
};
|
|
# FIXME need to convert harper over before this will work
|
|
#home.file."timewarrior.cfg" = {
|
|
# enable = true;
|
|
# target = ".timewarrior/timewarrior.cfg";
|
|
# text = ''
|
|
# tags.nixos.description = Working on NixOS
|
|
# '';
|
|
#};
|
|
home.file."vit-config.ini" = {
|
|
enable = true;
|
|
target = ".vit/config.ini";
|
|
text = ''
|
|
[taskwarrior]
|
|
taskrc = ~/.config/task/taskrc
|
|
|
|
[vit]
|
|
default_keybindings = vi
|
|
theme = default
|
|
confirmation = True
|
|
wait = True
|
|
mouse = True
|
|
|
|
[report]
|
|
default_report = nnext
|
|
default_filter_only_report = nnext
|
|
indent_subprojects = True
|
|
row_striping = True
|
|
|
|
[marker]
|
|
uda.notes.label = (N)
|
|
enabled = True
|
|
|
|
[color]
|
|
|
|
[keybinding]
|
|
o = :!wr onenote {TASK_UUID}<Enter>
|
|
'';
|
|
};
|
|
}
|