]>
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 t\?='alias -rm t t[a-z]'
- alias ta='t add'
- alias tn='t next'
- alias tl='t all'
- alias ty='t sync'
- alias td='t done'
- alias te='t edit'
- alias tm='t modify'
+ 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 || :