Skip to content

Commit

Permalink
Add new snowblock for Taskwarrior
Browse files Browse the repository at this point in the history
Create a new snowblock for Taskwarrior (1) including

* the "key=value" based `.taskrc` configuration (2) file
* a Nord (3) based color theme to be included in `.taskrc`

> Content

>> Context

The context (4) feature should be used to separate all public projects
and private/job related tasks.

>> UDA (User Defined Attributes)

The UDA (5) feature should be used to create custom attributes to add
a assignee, a estimation value and the GitHub issue ID to a task.

>> Reports

The reports (6) feature should be used to extend and optimize the task
output. The custom report should be set to `default.command` to replace
the default `next` report.

>> Aliases

The config should contain aliases to align with the alias workflow of
other snowblocks like bash and git. This improves the usability,
because there are several commands that start with the same characters
making it slower to be used with the auto completion.

* `a` ->  `add`
* `bd` ->  `burndown.daily`
* `cx` ->  `context`
* `e` ->  `edit`
* `ls` ->  `list`
* `mod` ->  `modify`

> Alternative workflows

The Taskwarrior workflow could be changed later on to use multiple
databases per use-case like e.g. one database per project to make
better use of the features like projects, tags and context with
finer grained filters.

> Configuration

>> Core Plugins

>>> `clean`

* `~`
* `~/.task`

>>> `link`

* "archbook":
  * `taskrc` -> `~/.taskrc`
  * `nord.theme` -> `~/.task/nord.theme`
* "igloo":
  * `taskrc` -> `~/.taskrc`
  * `nord.theme` -> `~/.task/nord.theme`

References:

  (3) https://arcticicestudio.github.io/nord
  (1) https://taskwarrior.org
  (2) https://taskwarrior.org/docs/introduction.html
  (4) https://taskwarrior.org/docs/context.html
  (5) https://taskwarrior.org/docs/udas.html
  (6) https://taskwarrior.org/docs/report.html

Closes GH-107
  • Loading branch information
arcticicestudio committed Apr 7, 2018
1 parent 392e927 commit c6534e6
Show file tree
Hide file tree
Showing 3 changed files with 209 additions and 0 deletions.
100 changes: 100 additions & 0 deletions snowblocks/taskwarrior/nord.theme
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Copyright (c) 2016-present Arctic Ice Studio <[email protected]>
# Copyright (c) 2016-present Sven Greb <[email protected]>

# Project: igloo
# Repository: https://github.com/arcticicestudio/igloo
# License: MIT
# References:
# https://taskwarrior.org/docs/themes.html
# task-color(5)
# taskrc(5)

rule.precedence.color=deleted,completed,active,keyword.,tag.,project.,overdue,scheduled,due.today,due,blocked,blocking,recurring,tagged,uda.

#+---------+
#+ General +
#+---------+
color.label=
color.label.sort=
color.alternate=
color.header=bold blue
color.footnote=cyan
color.warning=bold black on yellow
color.error=bold white on red
color.debug=magenta

#+-------------+
#+ Task States +
#+-------------+
color.completed=green
color.deleted=red
color.active=bold black on cyan
color.recurring=
color.scheduled=white on black
color.until=white on bright black
color.blocked=yellow on black
color.blocking=bold yellow on black

#+----------+
#+ Projects +
#+----------+
color.project.none=

#+----------+
#+ Priority +
#+----------+
color.uda.priority.H=bold cyan
color.uda.priority.M=bold blue
color.uda.priority.L=bold black

#+------+
#+ Tags +
#+------+
color.tag.next=
color.tag.none=
color.tagged=

#+-----+
#+ Due +
#+-----+
color.due=blue
color.due.today=cyan on black
color.overdue=bold red

#+---------+
#+ Reports +
#+---------+
color.burndown.done=bold black on cyan
color.burndown.pending=black on bright cyan
color.burndown.started=black on blue

color.history.add=bold black on blue
color.history.delete=bright white on bold black
color.history.done=bold black on cyan

color.summary.background=bright white on black
color.summary.bar=black on cyan

#+----------+
#+ Calendar +
#+----------+
color.calendar.due=bold black on blue
color.calendar.due.today=bold black on cyan
color.calendar.holiday=bold blue on white
color.calendar.overdue=white on red
color.calendar.today=bold black on cyan
color.calendar.weekend=bright white on bright black
color.calendar.weeknumber=bold black

#+-----------------+
#+ Synchronization +
#+-----------------+
color.sync.added=green
color.sync.changed=yellow
color.sync.rejected=red

#+------+
#+ Undo +
#+------+
color.undo.after=green
color.undo.before=red
27 changes: 27 additions & 0 deletions snowblocks/taskwarrior/snowblock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[
{
"clean": [
"~",
"~/.task"
]
},
{
"link": {
"~/.taskrc": {
"force": true,
"hosts": {
"archbook": "taskrc",
"igloo": "taskrc"
}
},
"~/.task/nord.theme": {
"create": true,
"force": true,
"hosts": {
"archbook": "nord.theme",
"igloo": "nord.theme"
}
}
}
}
]
82 changes: 82 additions & 0 deletions snowblocks/taskwarrior/taskrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Copyright (c) 2016-present Arctic Ice Studio <[email protected]>
# Copyright (c) 2016-present Sven Greb <[email protected]>

# Project: igloo
# Repository: https://github.com/arcticicestudio/igloo
# License: MIT
# References:
# https://taskwarrior.org/docs
# https://taskwarrior.org/docs/terminology.html#regex
# taskrc(5)
# task-sync(5)
# https://en.wikibooks.org/wiki/Regular_Expressions/POSIX-Extended_Regular_Expressions

#+------+
#+ Core +
#+------+
data.location=~/.task

complete.all.tags=true
default.command=list
editor=vim
list.all.projects=true
list.all.tags=true
regex=true
weekstart=Monday

#+----+
#+ UI +
#+----+
include ~/.task/nord.theme
color=true

#+---------+
#+ Context +
#+---------+
context.aur=project:aur
context.icecore=project:icecore
context.icepick=project:icepick
context.igloo=project:igloo
context.job=+job
context.lumio=project:lumio
context.nord=project:nord
context.northem=project:northem
context.private=+private
context.snowsaw=project:snowsaw
context.styleguide=project:styleguide

#+-----+
#+ UDA +
#+-----+
uda.assignee.type=string
uda.assignee.label=Assignee
uda.assignee.values=arcticicestudio,svengreb,arcticfrostgaming,
uda.assignee.default=

uda.estimate.type=string
uda.estimate.label=Size Estimate
uda.estimate.values=huge,large,medium,small,trivial,
uda.estimate.default=

uda.ghi.type=numeric
uda.ghi.label=GitHub Issue
uda.ghi.default=

#+---------+
#+ Reports +
#+---------+
report.stat.description=Optimized and extended status report
report.stat.columns=id,start.age,entry.age,depends.indicator,priority,project,tags,recur.indicator,scheduled,scheduled.relative,due,due.relative,until.remaining,description.count,urgency
report.stat.labels=ID,Active,Age,D,P,Project,Tags,R,Sch,,Due,,Until,Desc,Urg
report.stat.filter=status:pending
report.stat.sort=start-,due+,project+,urgency-

#+---------+
#+ Aliases +
#+---------+
alias.a=add
alias.bd=burndown.daily
alias.cx=context
alias.e=edit
alias.ls=list
alias.mod=modify

0 comments on commit c6534e6

Please sign in to comment.