datentraeger

geistige Umweltverschmutzung

taskwarrior

January 11, 2018 cli Debian/GNU Linux

Bin beim “RSS-Feeds” räumen grad auf diesen Blogeintrag gestossen und hab mir gedacht, dass ich Taskwarrior auch mal anschauen werde… (ja ich weiss, ist schon älter, hab ihn immer “ungelesen” gelassen, da ich es eben genauer anschauen wollte…)

Task anlegen

Ich mach jetzt grad ein Beispiel, bei dem möglichst viele Angaben enthalten sind. Diese müssen natürlich nicht immer angegeben werden

task add "über taskwarrior schreiben" project:work +blog (+tag2) (+tag3...) due:1w priority:M depends 2,4

Das legt dem Tasl “über taskwarroir schreiben” unter dem Projekt “work” mit den tags “blog”, dem Fälligkeitsdatum in einer Woche, der Priorität Medium an. Zudem ist er abhängig vom Task mit der ID 2 + 4.

Oder einen monatlichen Task erstellen, aber nur für ein Jahr

task add Pay rent due:28th recur:monthly until:now+1yr
task add Pay the rent due:eom (End-Of-Month)

Auch ganz cool: Monatlich jeweils am 25-ten

task add Monatslohn überweisen due:25th recur:monthly

und dann andere Zahlungen abhängig machen davon

task add Krankenkasse zahlen due:eom project:private depends:113 (id vom anderen Task, das wäre hier "Monatslohn überweisen")

Ändern

Mit modify können Tasks geändert werden (man kann aber auch “edit” verwenden und via vi anpassen)

task 1 modify depends:2-4

Notizen

um eine Notiz bei einem Task hinzuzufügen:

task annotate 117 Notiz für Task 117

Dies kann man beliebig oft wiederholen. In der Auflistung wird mit der Anzahl Notizen in [] hingewiesen, bspw.:

ID  Project Tags Description                       
117 private irgendein Task [3]

Filterung

Wenn man nur die Tasks mit gewissen Tags oder von gewissen Projekten angezeit haben möchte, kann man das einfach bei den Parametern mitgeben, z.B.:

task ghistory project:work
task burndown.daily +blog
task list project:private
task +OVERDUE list
task +WEEK list
task +DUE -DUETODAY list (alle überfälligen, aber nicht die heute überfälligen)

Das ganze geht natürlich auch ohne Tags / Projekt, aber ich finde diese Optionen schon ziemlich cool…

Wenn man einen Task starten, teilt man das einfach taskwarrior mit (ich glaube, damit wird auch einfach die Priosisierung in tw aktualisiert). Zudem kann man bspw. mit “task active” checken, woran man grad arbeitet…

task 12 start

wenn er erledigt ist einfach “done” setzen…

task 12 done

Doku

Das ganze geht natürlich ins “Endlose”, also schaut man sich am Besten mal die Doku mit etlichen Beispielen und Erklärungen an (hab ja auch das meiste nur daraus kopiert…)

Suche

mit task ls /suchbegriff/ kann man recht simpel suchen

task ls /zahlen/

ID Project Tags R Description
111 private home R Krankenkasse zahlen
113 work R Monatslohn zahlen

Viele weitere Beispiele findet man in der Doku… darum geh ich auch nicht weiter darauf ein…

Integration in Mutt

Um Mails zu Tasks zu machen, erstellt man ein Keybinding. Ich habe C-a gewählt (t ist bei mir schon für’s Taggen reserviert)

#taskwarrior, add task with ctrl-a
macro index,pager \Ca "<pipe-message>~/.mutt/mutt2task/mutt2task.sh<enter>"

Dass mutt2task-Script ist ziemlich simpel gestrickt:

/usr/bin/task add +email E-mail: $(grep 'Subject' $* | awk -F: '{print $2}')

Damit wird ein Task mit dem Mailsubject und dem Tag “email” erstellt.

Sync mit Bugtracker

Mit bugwarrior können Tickets aus Redmine, Github, Jira und etlichen anderen Bugtrackern synchronisiert werden. Wird dort ein Ticket geschlossen, wird dies auch beim nächsten Syncdurchgang berücksichtigt. Die Dokumentation hat zu allen Services Beispiele. Das ganze schaut dann in etwa so aus (hier mit Redmine):

[foo_redmine]
service = redmine
redmine.url = https://redmine.foo.bar/
redmine.key = API-KEY
redmine.user_id = USER-ID 
redmine.project_name = work
redmine.issue_limit = 100 
redmine.add_tags = redmine

Somit werden Tickets mit dem Tag “redmine” zum Projekt “work” synchronisiert, auf 100 limitiert. Wird ein Ticket geschlossen, wird dies natürlich auch im Sync berücksichtigt…

Server

Verwendet man Taskwarrior auf mehreren Endgeräten, ist natürlich eine Serverinstanz gar nicht uninteressant. Auch hierzu gibt es eine Lösung: den Taskserver (unter Debian ist er als taskd paketiert).

Es gibt auch etliche Tools / Erweiterungen für Taskwarrior, bspw. Weboberflächen etc. Ziemlich cool, das ganze. Und so kann man auch Leute dazu bewegen, Taskwarrior einzusetzen, die nichts mit einem cli-Interface zu tun haben möchten…

EDIT 01.05.2018: Habe nun auch den Serverteil von taskwarrior (taskd) montiert und dokumentiert.

Übersicht

so schaut in etwa ein “task next” Output aus…

mein Fazit

also ich setze das ganze jetzt seit etwa einer Woche ein – und ich bin verdammt begeistert. Vorallem der Sync mit Redmine, einfach Hammer. Ich habe das Gefühl, dass ich meine “Tasks” wesentlich besser im Griff habe, seitdem ich taskwarrior verwende. Ich kann jedem nur empfehlen, taskwarrior mal anzuschauen. Für mich ist es generell eine sehr grosse Bereicherung, jetzt habe ich Mail (mutt), Kalender (khal), Kontakte (khard) und IM (profanity/weechat) im “TUI” (terminal user interface). Das macht mich schon sehr happy…

Eigentlich dachte ich, dass Redmine schon mehr als genug ist für mich (würde ich auch nicht meĥr weggeben), aber taskwarrior setzt noch eins drauf…

EDIT [30.01.2018]

Nach bald einem Monat mit taskwarrior bin ich immer noch voll begeistert, hab mich jedoch noch nicht dazu bewegt, eine Serverinstanz aufzusetzen (taskd).

Gerade eben kam mir noch todoman in die Quere. Es ist zwar wesentlich weniger umfangreich, was ich bei todoman aber sehr schön finde, ist die out-of-the-box Integration mit CalDAV. Das scheint bei taskwarrior leider nicht so ein Thema zu sein.

EDIT [15.03.2018]

Und immer noch bin ich voll begeistert (das CalDAV-Problem mal überschaut), aber ich habe meine Task wirklich wesentlich besser “im Griff”, seitdem ich taskwarrior einsetze..

(die Pending bleiben immer gleich, da ich via bugwarrior immer die letzten Tickets aus Redmine wieder importiere…)

 

mutt mit Outlook-Flags

vim: doc, odt, pdf und Co.

1 thought on “taskwarrior”
  1. Peter V. Beck, I.
    January 11, 2018 at 12:55 am

    taskwarrior http://blog.datentraeger.li/?p=916

Comments are closed.

Search
Posts
  • Overleaf
  • wir haben 300’000 !!
  • ZNAP Wallet
  • wtf m$ S3150 ?!?
  • systemd failed status entfernen
Archives
Categories
Tags
3D-Printing Android Apple Arch Backup BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.