Taskwarrior, rien que pour vos tâches !

Magazine
Marque
Linux Pratique
Numéro
72
Mois de parution
juillet 2012
Domaines


Résumé
Avec son interface minimaliste et sa flexibilité, Taskwarrior est un compagnon de choix pour effectuer le suivi de ses tâches au quotidien, se rappeler des échéances ou organiser des projets. Découverte de cet outil en ligne de commandes, dont la version 2.0 vient de sortir...

Body

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

dark-green-256

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.




Articles qui pourraient vous intéresser...

Créez vos clusters avec Elasticsearch

Magazine
Marque
Linux Pratique
Numéro
124
Mois de parution
mars 2021
Domaines
Résumé

Vous êtes-vous déjà demandé comment Facebook et Google gèrent leurs immenses masses de données tout en fournissant des services rapides ? Quelle serait votre solution pour gérer une base de données avec un trafic de données abondant ? Voici quelques éléments de réponse à ces questions.

Recréer un ancien environnement à l’aide de Docker

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Docker est un mot à la mode qu’on associe volontiers à microservices et autre Cloud. Cependant, nous allons voir ici qu’il peut aussi rendre des « macroservices » :-) dans un cadre tout à fait différent, voire contraire : celui de la maintenance logicielle !

Déployer Jenkins CI avec Docker

Magazine
Marque
Linux Pratique
Numéro
124
Mois de parution
mars 2021
Domaines
Résumé

Solution appréciée d’intégration continue, Jenkins est un puissant logiciel Java dont l’installation et l’exécution sur un système ne sont pas sans conséquence et à prendre à la légère. Afin de faciliter son déploiement et isoler proprement ce programme du reste de la machine qui l’héberge, nous allons illustrer ici comment le mettre en place, en seulement quelques commandes, à l’aide de Docker.

Déploiements reproductibles dans le temps avec GNU Guix

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
113
Mois de parution
mars 2021
Domaines
Résumé

Pour la recherche scientifique comme pour d'autres domaines, on a souvent besoin de reproduire un environnement logiciel à l'identique non seulement sur différentes machines, mais aussi à différents instants dans le temps. Docker et les machines virtuelles, qui sont souvent la solution choisie pour répondre à ce besoin, ont des limitations qu’il est facile de ne pas voir. Cet article illustre l’utilisation de GNU Guix pour des déploiements reproductibles, au bit près, dans l’espace et dans le temps.