Met Taskwarrior beteugel je de to-do-list op je desktop, Android tablet en smartphone, die je tevens met één druk op de knop onderling synchroon houdt. Taskwarrior werkt met projecten, tags en contexts. Taskwarrior heeft een ingenieus puntensysteem voor de urgentie van taken en is supergemakkelijk in het dagelijks gebruik.

Auteur: Matto Fransen

Taskwarrior is een geavanceerd takenbeheersysteem dat je via de commandline gebruikt. Je installeert het eenvoudig met de packagemanager, zowel op Linux, als op BSD, en via bijvoorbeeld homebrew op Mac OS X.

Een nieuwe taak voer je in met “task add”, gevolgd door de beschrijving van de taak. Bijvoorbeeld “task add Taart bakken”. Voer op deze manier een paar taken in en vraag vervolgens een overzicht van de taken op met “task”. Dit is een verkorte notatie van “task next” en geeft een overzicht van de als eerste uit te voeren taken. De taken zijn genummerd en het aantal taken dat Taskwarrior laat zien, is afgestemd op het aantal regels dat je beeldscherm kan bevatten.

Een uitgevoerde taak meld je af met “done”: “task 2 done”. Het taaknummer is dynamisch, na het gereed melden van taak 2 krijgt een andere taak nummer 2. Dat klinkt ingewikkeld, maar in de praktijk is dit vooral handig, het voorkomt dat je na verloop van tijd met vier- of vijfcijferige taaknummers werkt. Hierdoor is het echter wel onmogelijk om meerdere taken tegelijk gereed te melden, door bijvoorbeeld achter elkaar “task 3 done”, “task 8 done” en “task 10 done” in te voeren. Na het afmelden van een taak vraag je eerst een nieuw overzicht op en kijkt daar naar het volgnummer van de hierna af te melden taak.

Een taak wijzigen, doe je met het keyword “modify”. Stel dat taak 4 als omschrijving “Taart bakken” heeft, terwijl je visite liever cake heeft, dan wijzig je dat eenvoudig met “task 4 modify Cake bakken”. In het overzicht dat je met “task” opvraagt, staat nu netjes als omschrijving “Cake bakken” bij de taak. Wanneer je de gedetailleerde informatie over deze taak opvraagt met “task 4 info”, dan zie je dat Taskwarrior deze wijziging heeft gelogd, je krijgt daar ook de oude omschrijving te zien. Zo houdt Taskwarrior op de achtergrond allerlei informatie bij.

Je voegt aan een taak een toelichting toe met behulp van het “annotate” keyword, “task 23 annotate Zie de mail van 23 juni”. Wil je een annotatie van meerdere regels tekst invoeren, dan doe je dat door deze tussen quotjes te zetten. In het taken-overzicht krijg je de datum te zien waarop je een annotatie hebt toegevoegd, plus de inhoud ervan.

 

Overzicht van taken rapport task next

 

Tags

Je geeft net zoveel tags aan een taak als je zelf wilt. Een tag geef je aan met behulp van het plus-teken voorafgaand aan de tag. Bijvoorbeeld: “task add Linux Magazine lezen +thuis”. Hier maken we een nieuwe taak aan, met als tag “thuis”. Je kunt ook later tags aan een taak toevoegen, zoals “task modify 18 +kantoor”. Hier voegen we aan taak 18 een extra tag “kantoor” toe. Het verwijderen van een tag gaat net zo simpel, gebruik een minteken in plaats van een plusteken: “task modify 18 -thuis”.

Een overzicht van alle taken met een bepaalde tag vraag je op met “task +tag-naam”, dus bijvoorbeeld “task +thuis”. Dit levert een lijst met alle taken die als tag “thuis” hebben.

Gedetailleerde info van een taak

 

Projecten

Grotere taken splits je in meerdere kleinere. Takswarrior biedt hiervoor krachtige mogelijkheden rondom projecten. Het is zinvol om alles wat je in meerdere stappen gaat uitvoeren, op te splitsen en als project op te nemen. Een projectnaam geef je op middels “project:projectnaam”, waarbij je “project:” kunt afkorten tot “pro:”. Bijvoorbeeld “task add Spelling controleren pro:artikel”. Wanneer je meerdere taken hebt met “project:artikel”, dan vraag je die op met “task pro:artikel” of “task project:artikel”.

Subprojecten maak je aan door achter de projectnaam een punt op te nemen, gevolgd door de naam van het subproject: “task add Dweilen project:kamer.vloer”, of “task add Hotel boeken project:reizen.malaga”, of “task add Hotel boeken project:reizen.spanje.malaga”.

Het opvragen van de taken van een subproject gaat op dezelfde manier als het opvragen van de taken van een hoofdproject: “task pro:reizen.spanje.malaga”, of “task pro:reizen.spanje”. Wanneer je later de toewijzing van een taak wilt wijzigen, dan kan dat weer met modify: “task modify 48 project:grootproject”.

Afhankelijkheden

Taken kunnen afhankelijk van elkaar zijn, waarbij eerst de ene gereed moet zijn, voordat je de volgende kunt oppakken. Wanneer je bijvoorbeeld op je nieuwe laptop Linux en Taskwarrior wilt gaan installeren, moet je als eerste Linux installeren.

Hiervoor gebruik je het keyword “depends:”. “task add Installeer Linux project:laptop +debian”, “task add Installeer Taskwarrior project:laptop +taskwarrior”, “task add Configureer Taskwarrior project:laptop +taskwarrior”, wanneer dit de taken 21 t/m 23 betreft, dan geef je de afhankelijkheden voor bijvoorbeeld de laatste taak op door “task 23 modify depends:21-22”. Een taak waar andere taken afhankelijk van zijn, krijgt de status “blocking” en een hogere prioriteit.

Het task next rapport (dat je met “task” op de commandline opvraagt), toont geen taken die wegens hun afhankelijkheden nog niet uitgevoerd kunnen worden. Op die manier houd je focus.

Met “task +BLOCKED” en “task +BLOCKING” vraag je op welke taken wachten op de gereed melding van andere c.q. welke taken eerst gedaan moeten worden omdat ze andere taken ophouden.

Urgentie

Taskwarrior heeft een eigen systeem ontwikkeld om de urgentie van taken te bepalen. Hierbij kijkt het onder andere naar hoe oud een taak is, of deze deel van een project uitmaakt, of er andere taken van afhankelijk zijn, of er een deadline is en zo ja, welke, enz. Op de achtergrond berekent Taskwarrior steeds een score voor de urgentie, uitgedrukt in een aantal punten. Hoe meer punten, hoe hoger de urgentie. In het overzicht dat je met “task next” of “task” opvraagt, zijn de taken gerangschikt op dit aantal punten, van hoog naar laag.

Wanneer je dagelijks met Taskwarrior werkt, nieuwe taken aanmaakt en andere taken als gereed afmeldt, en gebruik maakt van opties zoals projecten, tags, deadlines en onderlinge afhankelijkheden, dan wordt deze rangschikking steeds beter en gaat dit echt in je voordeel werken.

Je geeft een bepaalde taak een hoge urgentie met de speciale tag “+next”: “task 3 modify +next”. Hierna verschijnt deze hoog in je overzicht. Taken waar je reeds mee gestart bent (“task 12 start”) verschijnen ook hoog in het overzicht.

Reports

Taskwarrior kan verschillende overzichten tonen, “reports” genaamd. Wanneer je “task” op de commandline ingeeft, krijg je het “task next” report te zien. Dit zijn de taken gesorteerd op aflopend aantal urgentiepunten, waarbij het aantal regels beperkt wordt tot dat wat op je scherm past. Wil je alle taken zien, doe dan bijvoorbeeld “task ls”, of “task long”. Dit zijn slechts enkele mogelijkheden, zie de documentatie. Hier vind je ook hoe je zelf eenvoudig nieuwe reports configureert. Kijk ook eens naar “task timesheet” en “task burndown”, “task summary” en “task calendar”.

Deadline

Je geeft een taak een deadline met behulp van “due:”. Achter due zet je een indicatie van de deadline, bijvoorbeeld “due:tomorrow”, “due:2019-05-02”, “due:mon” of “due:monday”. Dit zijn slechts enkele voorbeelden, taskwarrior kent een groot aantal mogelijkheden om een datum aan te wijzen, zoals 2d (over twee dagen), sow (start of next week), eow (end of next week), enzovoorts.

Stel, je wilt beslist voor de komende zaterdag het Linux Magazine gelezen hebben, dan doe je dit als volgt: “task add Linux Magazine lezen due:saturday”.

Startdatum

Je geeft een startdatum aan een taak met behulp van “scheduled”. Dit werkt op een vergelijkbare manier als due, zoals bijvoorbeeld “task add Keuken opruimen scheduled:2019-04-01”. Wanneer de startdatum bereikt is, dan gaat Taskwarrior ervan uit dat deze taak nu gereed is om mee te starten. Je vraagt een overzicht op van taken die gereed zijn om mee starten met “task +READY”.

Zolang de startdatum niet bereikt is, heeft de taak een urgency van nul en verschijnt daarom aan de onderkant van de takenlijst.

Synchroniseren

Voor het synchroniseren van je taken installeer je de deamon taskd. Dit is een lichtgewicht deamon, die gemakkelijk op een Raspberry Pi of soortgelijk kan draaien. De deamon is multi-user, dus er kunnen meerdere mensen van dezelfde server gebruik maken. De communicatie tussen de client en de server verloopt versleuteld via TLS. De documentatie van taskd beschrijft hoe je hiervoor met het meegeleverde script “generate” eenvoudig de certificaten aanmaakt. Daarnaast heeft elke gebruiker eigen certificaten, waarmee de server de identiteit van de gebruiker vaststelt.

In de configuratie van de deamon en de clients geef je op welke poort je wilt gebruiken. Wil je ook van buiten je thuisnetwerk kunnen synchroniseren, stel dan op de router een portforwarder in.

Android client

Taskwarrior heeft een Android client die je via de Playstore installeert. Deze ziet er fris uit en werkt gemakkelijk en probleemloos. Je hebt zo altijd een overzicht van je takenlijst bij de hand. Tekst invoeren, gaat op je laptop of PC natuurlijk wel makkelijker, maar het is handig om onderweg even snel een taak te kunnen toevoegen. Je hoeft niet bang te zijn dat de app je batterij leeg zuigt, deze synchroniseert alleen wanneer je op het wolkje klikt.

Je gebruikt voor de synchronisatie dezelfde certificaten als voor je desktop. Regel eerst deze synchronisatie, als dat werkt hoef je alleen nog de drie certificaten (twee voor de gebruiker en publieke certificaat van de server) op je Android device te zetten. Start de client en kies in het menu “Settings”. Je krijgt dan te zien in welke directory je certificaten horen.

Screenshot van Android client

 

Back-up

Wanneer je in de .task directory kijkt, dan zie je dat Taskwarrior de administratie bijhoudt in de vorm van platte tekst bestanden in json formaat. Ook taskd werkt op basis van een dergelijk bestand, dit is het tx.data bestand in de subdirectory van de betreffende gebruiker. Dit betekent onder andere dat je deze in één van de bekende versiebeheersystemen kunt stoppen. Wanneer je een git-servertje hebt, dan kun je bijvoorbeeld via cron dagelijks een commit doen van de wijzigingen en deze pushen naar deze server. Op deze wijze hebben wij de back-up van onze Taskwarrior taken geregeld.

Taskwarrior maakt gebruik van verschillende kleuren die je via het configuratiebestand kunt aanpassen. Je verandert individuele kleuren of kiest voor een complete theme. Rondom Taskwarrior zijn allerlei uitbreidingen en scripts geschreven, zie de website. Kijk ook eens naar “vit”, hiermee kun je eenvoudig over al je taken scrollen en details opvragen.

Een takenlijst dient regelmatig gereviewed te worden. Dit kun je met de standaard task rapportjes doen. Een andere mogelijkheid is om tasksh te installeren.

Simpel beginnen

Wij hebben hier nog lang niet alle opties beschreven. Taskwarrior biedt een zeer uitgebreide lijst aan mogelijkheden. Je kunt het gebruik net zo ingewikkeld maken als je zelf wilt. Zie ook de uitstekende manpage. Het is echter veel belangrijker om je to-do-list onder controle te hebben, dan om zoveel mogelijk opties te gebruiken. Beperk je daarom in het begin tot een klein aantal opties, dan leer je die vlot en zonder nadenken te gebruiken. Je gebruikt dan een krachtig, open source to-do-systeem dat veel meer biedt dan de meeste cloudoplossingen. En dat zonder je ziel te verkopen aan de surveillance marketing bedrijven.