1. Présentation
Chaque année, vous vous dites la même chose : faire des listes de tâches pour ne rien oublier. Mais les outils que vous essayez n'ont pas telle ou telle option qui ferait toute la différence, alors vous abandonnez. Qu'à cela ne tienne ! Pour les amateurs de la ligne de commandes, ou pour ceux qui cherchent une motivation pour s'y mettre en douceur, il y a Taskwarrior. Il s'agit d'un utilitaire minimaliste pour dresser et gérer des listes de tâches. Même si ce n'est pas son but premier, Taskwarrior peut tout à fait être utilisé pour implémenter la méthode GTD, ou Getting Things Done, de David Allen, qui attribue à chaque tâche un projet, une priorité et des contextes pour savoir à tout moment quelle est « la prochaine action » à mener.
Taskwarrior organise vos tâches en fonction de différents critères. Les listes reflètent vos envies organisationnelles, de la simple liste de courses à l'application du système Getting Things Done de David Allen...
2. Installation et premières tâches
Taskwarrior est disponible dans les dépôts de la plupart des distributions Linux. Il vous suffit d'installer le paquet task avec votre gestionnaire de paquets (Apt, Pacman, Yum...). Exemple avec aptitude en root :
# aptitude install task
Une fois installé, Taskwarrior s'utilise avec des instructions de la forme suivante :
task <filtre> <commande> <modification>
Passons au shell utilisateur. Nous allons ajouter quelques tâches avec la commande add :
$ task add Bloquer un samedi en juillet
Created task 1.
$ task add Choisir les invités
Created task 2.
$ task add Envoyer les invitations
Created task 3.
$ task add Payer la facture d'électricité
Created task 4.
$ task add Découvrir Taskwarrior
Created task 5.
Pour marquer une tâche comme réalisée :
$ task 5 done
Pour substituer du texte dans la description d'une tâche :
$ task 4 /Payer/Régler/
Autre commande utile : la commande undo vous permet de revenir à l'état précédant la dernière commande, en cas de boulette. Et si vous souhaitez supprimer l'une de vos tâches, utilisez la commande delete.
Différences entre les versions
Selon les distributions, Taskwarrior est disponible dans sa dernière version 2.0, ou bien en version 1.9.x. Ce tutoriel utilise la syntaxe de la version 2.0. Pour les versions 1.9.x, il suffit d'enlever la commande modify dans les lignes de commandes pour avoir les mêmes résultats.
Dans la version 2.0, il est désormais possible de soumettre plusieurs possibilités pour un champ donné d'un même filtre :
$ task list project:travaux or project:article
liste les tâches appartenant soit au projet « travaux », soit au projet « article ».
3. Projets, priorités et tags
Dans Taskwarrior, chaque tâche peut être singularisée en lui associant un projet, une priorité, des tags, des commentaires... La manière la plus naturelle de regrouper des tâches est de les associer à un projet. Pour cela, rien de plus simple :
$ task 1 modify project:fiesta
On agit sur plusieurs tâches en séparant leur numéro d'identification par des virgules :
$ task 2,3 modify project:fiesta
$ task 4 modify project:factures
On peut faire de même avec la priorité, définie comme high(H), medium(M) ou low(L) :
$ task 1,2,3 modify priority:M
$ task 4 modify priority:H
Vous avez aussi la possibilité d'affecter des tags à une tâche, que ce soit pour signaler un contexte, un temps d'exécution ou une difficulté. Par exemple :
$ task 4 modify +salon +10m +facile
Il est bien sûr possible de filtrer un rapport avec le texte d'un ou plusieurs tags.
Le shell interne
Pour éviter de taper task avant chaque commande, activez le shell interne de Taskwarrior avec la commande :
$ task shell
Le prompt de l'utilisateur laisse place au prompt suivant :
task>
Et voilà ! Attention cependant : ce shell ne permet pas l'auto-complétion ou l'historique de commandes, ni le déplacement du curseur, ce qui peut agacer à la longue. Pour quitter le shell interne :
task> quit
4. Les rapports
Pour afficher les tâches sous forme de liste, Taskwarrior est fourni avec un certain nombre de rapports pré-configurés. Un rapport est un ensemble de filtres qui affiche les tâches répondant à des critères spécifiques, avec des colonnes ou un classement particuliers. Le rapport list affiche toutes les tâches en cours avec les colonnes de base :
$ task list
4 tasks
Le rapport minimal affiche toutes les tâches, en cours ou en attente, avec moins de colonnes. Le rapport waiting regroupe toutes les tâches en attente. Il en existe bien d'autres, plus complets, comme le rapport long :
$ task long
ID Project Pri Added Started Due Recur Countdown Age Deps Tags Description14/25/2012-1dBloquer until samedi en juillet24/25/2012-1dChoisir les invités34/25/2012-1dEnvoyer les invitations44/25/2012-1dsalon 10m facile Régler la facture d'électricité
4 tasks
5. Les dépendances
Certaines tâches sont à réaliser avant d'autres. Pour cela, vous pouvez établir un lien de dépendance entre deux tâches :
$ task 2 modify depend:1
Ainsi, la tâche 2 apparaît grisée dans le rapport list : elle est bloquée. Les rapports spécifiques blocked et unblocked affichent respectivement les tâches bloquées et non bloquées par une ou plusieurs autre(s). Pour annuler une dépendance, il suffit de laisser le champ correspondant vide :
$ task 2 modify depend:
La commande info, qui affiche les particularités d'une tâche donnée, permet de vérifier notamment l'état des dépendances :
$ task info 2
6. Échéances et statuts
Pour ajouter une échéance à une tâche, il suffit de lui attribuer une valeur dans le champ due. Le format utilisé pour inscrire les dates absolues est le suivant : MM/JJ/AAAA. Mais les dates relatives sont aussi reconnues, comme mercredi prochain (wednesday), la fin du mois (eom), la fin de l'année (eoy). Ainsi :
$ task 4 due:eom
vous rappellera opportunément à la fin du mois qu'il faut régler la note d'électricité.
Une tâche entrée dans Taskwarrior est par défaut enregistrée comme étant en cours (pending). Cependant, rien ne vous empêche de la mettre en attente dès sa création :
$ task 1 wait:6/15/2012
Ainsi, la tâche mise en attente n'apparaîtra sur la liste des tâches en cours qu'à partir de la date mentionnée. Si vous ne voulez rien mettre de précis, mettez wait:later. Ceci est interprété par Taskwarrior comme étant le 18 janvier 2038... Ce qui vous laisse du temps pour réaffecter la tâche !
7. Paramétrage avancé
Dans Taskwarrior, toutes les options sont paramétrables soit directement dans le logiciel, soit en éditant le fichier .taskrc dans votre répertoire personnel. Avec Taskwarrior, tapez show pour afficher l'ensemble des paramètres de configuration. Ceux figurant en grisé sont différents des réglages par défaut. Pour modifier la commande par défaut (qui s'exécute quand vous tapez uniquement task) :
$ task config default.command list
Le rapport list s'affiche maintenant par défaut en tapant task, puis en validant.
Pour créer un nouveau rapport, ouvrez le fichier .taskrc et ajoutez quelques lignes :
report.monrapport.columns=id,project,priority,due,tags,description
définit les données des tâches à afficher et leur agencement ;
report.monrapport.labels=ID,Project,Pri,Due,Tags,Description
définit les en-têtes des colonnes ;
report.monrapoort.sort=description+,due+,tags+,priority-,project+
définit l'ordre dans lequel apparaissent les tâches, en commençant par le premier critère de la liste ;
report.monrapport.filter=status:pending due.before:tomorrow
définit les filtres du rapport.
Dorénavant, en lançant la commande task monrapport, vous afficherez une liste classique, comme avec list, mais avec les tâches classées dans l'ordre alphabétique.
8. Changer le thème
Taskwarrior est livré avec une douzaine de thèmes différents pour une meilleure visualisation (ou pour rendre le tout plus flashy, c'est selon). Ils sont stockés dans le répertoire /usr/local/share/doc/task/rc. Pour avoir un thème bleu sombre, par exemple, ajoutez à votre .taskrc :
include /usr/local/share/doc/task/rc/dark-blue-256.theme
Taskwarrior avec le thème « dark green »
Conclusion
Nous avons passé en revue les bases de Taskwarrior, ainsi que les outils pour l'adapter à une utilisation personnelle. Son interface, si elle peut rebuter au début, fait aussi sa force. Les filtres permettent un tri très fin des tâches que l'on souhaite faire apparaître (projet, échéance, priorité, tags...). Enfin, la configuration des rapports vous donne carte blanche pour créer des rapports adaptés à vos besoins.
Pour aller plus loin, sachez que le site du projet Taskwarrior (http://taskwarrior.org/projects/show/taskwarrior) regorge de ressources, comme un wiki et un tutoriel complet. L'importation et l'exportation de tâches y sont aussi décrites.