Taskwarrior
Taskwarrior est un logiciel open-source en ligne de commande permettant de gérer ses tâches. Il publié sous licence MIT et est multiplateforme.
![](../I/Taskwarrior-logo.png.webp)
![](../I/Taskwarrior_screenshot.png.webp)
Développé par |
Paul Beckingham, Federico Hernandez, David J Patrick, John Florian[1]... |
---|---|
Première version | |
Dernière version | 2.6.2 () |
Dépôt | github.com/GothenburgBitFactory/taskwarrior |
Écrit en | C++ |
Système d'exploitation | Linux, Berkeley Software Distribution, macOS et Cygwin |
Environnement | Multiplateforme |
Langues | Anglais |
Type | Gestionnaire de tâches |
Licence | Licence MIT |
Site web | http://taskwarrior.org/ |
Il permet de créer, modifier, supprimer des tâches ; de leur assigner un ou plusieurs projets, priorités et tags et de les visionner à travers divers rapports.
Utilisation
Les commandes permettant l'utilisation de Taskwarrior suivent la syntaxe générique suivante :
task <filtre> <commande> <modifications>
Gestion des tâches
Les commandes add
, modify
et done
permettent respectivement d'ajouter, de modifier et de marquer comme faite une tâche.
Chaque tâche a une description qu'il est obligatoire de préciser dès l'ajout, ainsi que de multiples attributs (tels qu'un projet, une priorité, des tags, une date d'échéance, une dépendance...). Des valeurs peuvent être assignées à tout ou partie des attributs et ses valeurs peuvent être modifiée à tout moment.
Certains de ces attributs ont toutefois quelques spécificités. La priorité d'une tâche ne peut être fixée qu'à l'une des trois valeurs suivantes : H pour high (élevée), M pour medium (moyenne) ou L pour low (basse). La date d'échéance doit être fixée selon certaines règles, bien que de nombreuses manières différentes permettent de la définir, entre autres :
- l'équivalent anglais de n'importe quel jour de la semaine : e. g.
friday
indique vendredi prochain - des abréviations anglaises pour désigner le début (start) ou la fin (end) de la semaine (week), du mois (month), de l'année (year). e. g.
som
désigne le début du mois (start of month) ;eoy
désigne la fin de l'année (end of year). Attention cependant, la semaine désigne la semaine de travail (qui commence le lundi et finit le vendredi). Il suffit toutefois d'utilisereocw
pour désigner la semaine du calendrier (calendar week) qui commence le dimanche ou le lundi et se termine le samedi ou le dimanche. Ainsieow
désigne la fin de la semaine de travail (vendredi) eteocw
, la fin de la semaine du calendrier. - une date sous la forme MM/JJ/AAAA ou sous la forme déterminée par la norme ISO 8601.
- Exemple
$ task add Une tâche...
Created task 1.
$ task add Une autre tâche
Created task 2.
$ task add Une troisième tâche priority:L depend:1,2 +unTag
Created task 3.
On crée d'abord plusieurs tâches en spécifiant une description et, parfois, un ou plusieurs attributs. Ici, la tâche 3 a une priorité basse, dépend des tâches 1 et 2 et a un tag « unTag ».
$ task 1-3 modify priority:M
- Priority will be set to 'M'.
Modify task 1 'Une tâche...'? (yes/no/all/quit) a
Modifying task 1 'Une tâche...'.
Modifying task 2 'Une autre tâche'.
Modifying task 3 'Une troisième tâche'.
Modified 3 tasks.
$ task modify project:DécouverteDeTaskwarrior due:eocw
This command has no filter, and will modify all tasks. Are you sure? (yes/no) y
- Due will be set to '8/11/2012'.
- Project will be set to 'DécouverteDeTaskwarrior'.
Modify task 1 'Une tâche...'? (yes/no/all/quit) y
Modifying task 1 'Une tâche...'.
- Due will be set to '8/11/2012'.
- Project will be set to 'DécouverteDeTaskwarrior'.
Modify task 2 'Une autre tâche'? (yes/no/all/quit) a
Modifying task 2 'Une autre tâche'.
Modifying task 3 'Une troisième tâche'.
Modified 3 tasks.
The project 'DécouverteDeTaskwarrior' has changed. Project 'DécouverteDeTaskwarrior' is 0% complete (3 of 3 tasks remaining).
Une fois les tâches créées, on peut les modifier en spécifiant un filtre qui détermine quelle(s) tâche(s) est (sont) à modifier. Un filtre peut être l'ID d'une tâche (e. g. 1
désignera la tâche 1 : 'Une tâche...'), une énumération d'ID (e. g. 1,3
désignera les tâches 1, 'Une tâche...', et 3, 'Une troisième tâche'), une plage d'ID, comme ici, où 1-3
signifie les tâches 1 et 2 et 3 (équivalent à 1,2,3; mais est très utile si l'on désigne une plage importante : e. g. 9-34
). Un filtre peut aussi être un attribut quelconque : e. g. priority:H
filtrera uniquement les tâches avec une priorité élevée. On peut aussi combiner les filtres avec les opérateurs logiques and
, or
et xor
.
En l'absence de filtre, comme lors de la seconde modification, l'action affecte toutes les tâches. Ici toutes les tâches font maintenant partie du projet DécouverteDeTaskwarrior et ont pour échéance la fin de la semaine du calendrier.
$ task 1 done
Completed task 1 'Une tâche...'.
Completed 1 task.
Project 'DécouverteDeTaskwarrior' is 33% complete (2 of 3 tasks remaining).
On termine en marquant la tâche 1 comme faite.
Rapports sur les tâches
Parmi les rapports prédéfinis, on notera :
list
(liste toutes les tâches avec quelques informations complémentaires à chaque tâche comme son projet, sa priorité et son échéance),long
(comme list mais avec plus de détails comme les dépendances, les tags),next
(liste les tâches les plus urgentes, déterminées par le logiciel en calculant l'« urgence » d'une tâche à l'aide de sa priorité, de son échéance[2]...),summary
(liste tous les projets et indique pour chacun le nombre de tâches restant à effectuer ainsi que l'avancement du projet qui correspond au pourcentage de tâches du projet réalisées).
task <nom-du-rapport>
permet de visualiser un rapport. Par exemple, task list
permet de visualiser le rapport list
. Il est toutefois possible de visualiser un rapport en utilisant un filtre, par exemple task priority:H list
.
En plus de la vingtaine de rapports prédéfinis[3], il est aussi possible de définir ses propres rapports en éditant le fichier de configuration .taskrc
[4].
- Exemple
En continuant l'exemple de la partie précédente, voici ce que peuvent donner les quelques rapports précédemment cités :
$ task long
ID Project Pri Added Started Due Recur Countdown Age Deps Tags Description
1 DécouverteDeTaskwarrior M 8/4/2012 8/11/2012 - -5 days 1d Une autre tâche
2 DécouverteDeTaskwarrior M 8/4/2012 8/11/2012 - -5 days 1d 1 unTag Une troisième tâche
2 tasks
Les quatre rapports cités listent tous uniquement les tâches non terminées, ainsi « Une tâche... » n'est pas listé. De plus, les ID affichés ici ne sont pas constants et peuvent changer lorsqu'une tâche est marquée comme faite. Un identifiant désignant une tâche de manière unique existe cependant sous le nom d'UUID et a une valeur en hexadécimal.
$ task summary
Project Remaining Avg age Complete 0% 100%
DécouverteDeTaskwarrior 2 19 hrs 33% ||||||||||
1 projects
Dans le rapport summary
, une barre de progression (en réalité plus esthétique que celle de l'exemple) permet d'apprécier l'avancement de chaque projet.
$ task next
ID Project Pri Due A Age Urgency Description
1 DécouverteDeTaskwarrior M 8/11/2012 1d 19.1 Une autre tâche
2 DécouverteDeTaskwarrior M 8/11/2012 1d 6.95 Une troisième tâche
2 tasks
Ici, les tâches sont classées par « urgence », paramètre calculé entre autres à partir de la priorité et de l'échéance.
Note : En réalité, la commande task
seule affiche le rapport next
et est donc équivalente à task next
.