]>
git.madduck.net Git - etc/taskwarrior.git/blobdiff - .zsh/zshrc/parts.d/50-taskwarrior 
madduck's git repository 
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath>  — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch  and git-send-email  to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines  and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
  arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig  and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:
 
-# display ready taskwarrior tasks 
+# taskwarrior shell integration 
-# Copyright © 1994–2017  martin f. krafft <madduck@madduck.net>
+# Copyright © 2018  martin f. krafft <madduck@madduck.net>
 # Released under the terms of the Artistic Licence 2.0
 #
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 # Released under the terms of the Artistic Licence 2.0
 #
 # Source repository: http://git.madduck.net/v/etc/zsh.git
 
 if whence task >/dev/null; then
 
 
 if whence task >/dev/null; then
 
-  alias t=task
-  alias ta='t add'
-  alias tn='t next'
-  alias tl='t all'
-  alias ty='t sync'
-  alias td='t done'
+  function task_() {
+    local spec cmd args nospec=0
+    cmd="$1"; shift
+    [[ "$cmd" = add ]] && nospec=1
+    for i in "$@"; do
+      case "$nospec@$i" in
+        (0@<->) :;&
+        (0@/*/) spec="${spec:+$spec }$i";;
+        (*) args="${args:+$args }$i";;
+      esac
+    done
+    eval task $spec $cmd $args
+  }
-  local SENTINEL=${XDG_RUNTIME_DIR}/taskwarrior/shell_run_sentinel
-  mkdir --parent ${SENTINEL%/*}
-  # only print the tasks at most once every 30 seconds
-  if [[ -t 0 ]] && [[ -z ${SENTINEL}(#qNms-30) ]]; then
-    touch ${SENTINEL}
-    task 2>/dev/null || :
-  fi
-  unset SENTINEL
+  alias t\?='alias -rm t t[-+a-z] | sed s,_,,'
+  alias ta='task_ add'
+  alias tc='task_ call'
+  alias th='task_ attach'
+  alias tl='task_ all'
+  alias ty='task_ next rc.recurrence=on >/dev/null && task_ sync'
+  alias td='task_ done'
+  alias te='task_ edit'
+  alias tu='task_ undo'
+  alias tm='task_ modify'
+  alias ts='task_ start'
+  alias tw='task_ waiting'
+  alias t+='task_ annotate'
+  alias t='task_ ""'
+
+  run_at_most_every 5m \
+    t 2>/dev/null || :