Index | Diary

Journal 2026-02-27

Taskwiki Taskwarrior Annotations

taskopen taskwiki taskwarrior

Task attachments perfected! #386 integrates taskopen into taskwiki.

Installation

Install [[https://nim-lang.org/install_unix.html|Nim compiler]].

TMP="$(mktemp -d)"
function install_taskopen () {
  hash pixi || return 1
  pushd "$TMP"
  git clone https://github.com/jschlatow/taskopen.git
  pixi global install nim
  sudo apt install xdg-utils
  cd taskopen
  if [ -z "${XDG_DATA_HOME}" ]; then
    export XDG_DATA_HOME="${HOME}/.local/share"
  fi
  mkdir -p "${XDG_DATA_HOME}"
  if [ -z "${XDG_CONFIG_HOME}" ]; then
    export XDG_CONFIG_HOME="${HOME}/.config"
  fi
  mkdir -p "${XDG_CONFIG_HOME}"
  make OPEN='xdg-open-cli' PREFIX="$XDG_DATA_HOME/taskopen/scripts:/usr/local" all manpages
  sudo make install
  popd
}

Taskopen Error Messages

taskopen --All any

# parsejson.nim(518)       raiseParseErr
# Error: unhandled exception: (1, 0) Error: { expected [JsonParsingError]

taskopen does not parse deleted tasks. $XDG_CONFIG_HOME/taskopen/taskopenrc can prevent task exporting deleted tasks.

[General]
taskargs="-DELETED"

Taskopen Configuration

$XDG_CONFIG_HOME/taskopen/taskopenrc

[General]
EDITOR=vim
taskbin=task
taskargs="-DELETED"
no_annotation_hook="addnote $ID"
task_attributes="priority,project,tags,description"
--sort:"urgency-,annot"
--active-tasks:"+PENDING"
# --active-tasks:"(+ANNOTATED and (+WAITING or +PENDING))"
# --active-tasks:"(+WAITING or +PENDING)"
# path_ext=/usr/local/share/taskopen/scripts
path_ext=/home/jdfen/.local/share/taskopen/scripts

[Actions]
files.target=annotations
files.labelregex="^(?!wiki).*"
files.regex="^[\\.\\/~]+.*\\.(.*)"
files.command="xdg-open $FILE"
files.modes="batch,any,normal"

wiki.target=annotations
wiki.labelregex="^(wiki)"
wiki.regex="^[\\.\\/~]+.*\\.(.*)"
wiki.command="xdg-open-cli $FILE"
wiki.modes="batch,any,normal"

shortpath.target=annotations
shortpath.labelregex="^(wiki)"
shortpath.regex="/(mnt/|)c/Users/(?i:jdfen)/OneDrive/Documents/(.*)"
shortpath.command="""shortpath "$LABEL: $FILE" $LABEL': ~/'$LAST_MATCH"""
shortpath.modes="batch,any,normal"

Usage

taskopen batch --include=shortpath -A taskopen any --active-tasks='+WAITING' task <id|uid> annotate -- url: <https://www.site.com>

Page created on 2026-03-22