9. Gestion du temps et des tâches en ligne de commande

Les deux softs remarquables pour ce type d’utilisation sont Timewarrior et Taskwarrior. Leur installation est très simple :

apt-get install timewarrior taskwarrior

Préalable

Avant toute chose, il faut bien comprendre la différence entre un gestionnaire de tâches et un gestionnaire de temps. Le plus simple est de considérer que le premier se concentre sur l’avenir et le second sur le passé.

Ainsi, quand on a une tâche à réaliser, elle peut être en cours ou finie. Un gestionnaire de tâche va donc comporter essentiellement la possibilité d’ajouter une tâche, d’en faire la liste et de la marquer comme finie. Par ailleurs, il doit pouvoir gérer des regroupements. Ainsi, il faut pouvoir considérer des projets qui regroupent plusieurs tâches.

Le gestionnaire de temps est simplement là pour enregistrer le temps passé sur chaque tâche. On doit pouvoir l’utiliser pour faire des rapports permettant de filtrer le temps passé sur les différentes tâches.

Ainsi, en utilisant simultanément les deux gestionnaires, on peut conserver l’histoire du temps passé et visualiser ce qu’il reste à faire.

Taskwarrior

Commençons par décrire taskwarrior. Taskwarrior ne se lance pas par une commande éponyme. Il fournit simplement la commande « task » qu’il faut faire suivre d’arguments. Les choses sont simples quand on les connaît :

  • task add nom : crée une tâche nommée nom mais ne la démarre pas
  • task list : permet de voir la liste de toutes les tâches
  • task numéro start : démarre la tâche qui a le numéro donné dans la liste
  • task numéro stop : stoppe la tâche qui a le numéro donné
  • task numéro done : marque comme faite la tâche qui a le numéro donné
  • task numéro del : détruit la tâche qui a le numéro donné

Taskwarrior fournit une liste des tâches et si timewarrior est installé, taskwarrior peut l’utiliser pour faire un décompte du temps passé sur la tâche. La liaison entre la tâche et le temps passé à l’exécuter se fait par l’intermédiaire des tags, comme nous le verrons plus bas.

On peut aussi travailler dans des projets. Par exemple pour créer un projet professionnel, sur le composant électronique INA219, avec pour tâche de mesurer la tension aux bornes d’un condensateur, on peut écrire :

task add projet:Prof.INA219 Tension aux bornes d'un condensateur

Le point (.) permet de faire des sous-projets (et des sous-sous-projets, …). Je vous laisse imaginer ensuite ce que peut faire taskwarrior, sachant qu’il peut aussi taguer des tâche, présenter des rapports d’activités, exporter les données, … FAMEUX, un grand merci à ses auteurs.

https://taskwarrior.org/docs/

Une bonne idée pour bien gérer ses tâches est de suivre la liste des bonnes pratiques décrites à l’adresse : https://taskwarrior.org/docs/best-practices.html

Timewarrior

Notez que taskwarrior ne permet pas de visualiser le temps passé sur une tâche pendant son activité. Ce n’est pas son rôle. Pour pouvoir le faire il s’agit d’utiliser timewarrior. Or, il faut aussi lier ces deux programmes. Ce qui est relativement simple. Les deux liens suivants vous permettrons de le faire :

https://timewarrior.net/docs/taskwarrior.html

https://lazybear.io/posts/2019-12-26-using-timewarrior-with-taskwarrior/

Cela se fait par l’ajout d’un « hook », c’est-à-dire d’un petit programme fourni par timewarrior à mettre dans le répertoire de taskwarrior. Sous Debian, ce programme se trouve dans la documentation de timewarrior et pour le mettre dans le bon répertoire de taskwarrior il faut utiliser la première commande ci-dessous. La seconde permet simplement de le rendre exécutable.

cp /usr/share/doc/timewarrior/ext/on-modify.timewarrior ~/.task/hooks
chmod +x ~/.task/hooks/on-modify.timewarrior

Ensuite, on vérifie que tout est bien en ordre avec la commande :

task diagnostics

qui devrait retourner une ligne comme :

Active: on-modify.timewarrior (executable)

On peut maintenant travailler avec les deux logiciels simultanément. En démarrant une tâche, taskwarrior va utiliser timewarrior pour lancer le décompte du temps passé sur celle-ci en lui affectant plusieurs tags. Ainsi, démarrer la tâche truc du projet machin démarrera un décompte auquel seront affectés les tags machin et truc. Retrouver celui-ci sera alors aisé en utilisant timewarrior.

Timewarrior

La référence pour la documentation sur timewarrior est la suivante :

https://timewarrior.net/docs

Essentiellement, deux manières de représenter l’information temporelle sont disponibles. Il s’agit du « rapport de synthèse » ou « summary report » et des « cartes » ou « charts ». On y accède par les commandes suivantes (exemples repris du site ci-dessus) :

timew summary
timew summary today
timew summary today - tomorrow
timew summary today to tomorrow
timew summary 2016-06-18T00:00
timew summary 2016-06-18T00:00 - 2016-06-19T00:00:00
timew summary 18th
timew summary saturday
timew summary :week
timew summary :month

Ce qui permet d’obtenir :

La seconde représentation comporte trois possibilités : day, week et month. La commande se décline ainsi :

timew day Test
timew week
timew month

Les arguments de ces commandes sont nombreux, notamment il existe la possibilité de limiter l’affichage automatiquement aux jours nécessaires.

Pour l’affichage suivant ici sur deux lignes en raison de la taille d’affichage de la console :

Timewarrior repose donc sur les tags. Indépendamment de taskwarrior, il est possible de lancer l’enregistrement d’une activité en utilisant la commande :

timew machin start

De cette manière, en lançant l’enregistrement, on lui affecte un tag. On peut en prendre conscience par le fait qu’il est possible de lancer l’enregistrement uniquement par :

timew start

pour ensuite affecter à cet enregistrement un tag particulier par :

timew @1 tag 'Un ptit essai'

où @1 est le numéro de la tâche qui vient de finir ou celui donné dans la liste des enregistrements obtenue par :

timew summary :month :ids

En séparant les tags par des espaces, on peut en mettre plusieurs. Ainsi, en utilisant taskwarrior pour démarrer une tâche par :

task machin start

on va démarrer son enregistrement pas timewarrior avec les tags machin et truc, si machin fait partie du projet truc.

Gestion des enregistrements

Évidemment, on peut agir sur les enregistrements s’ils n’ont pas été correctement faits. Plusieurs commandes sont disponibles :

  • timew split : coupe en deux parties égales un enregistrement en conservant ses tags.
  • timew shorten : avance la fin de l’enregistrement d’un intervalle de temps donné.
  • timew lengthen : repousse la fin de l’enregistrement d’un intervalle de temps donné.
  • timew move : repositionne un enregistrement à un moment donné par son début.
  • timew resize : redimensionne un enregistrement à un intervalle de temps donné.
  • timew untag : supprime un tag d’un enregistrement donné.

La structure précise de ces commandes est très bien décrite dans la page de manuel de timew.

Laisser un commentaire