Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Gestion de tâches (todo) avec dmenu

Voici un script pour gérer les tâches à effectuer. Lorsqu'on tape une entrée qui n'est pas présente, elle est ajoutée. Sinon, lorsqu'on sélectionne une entrée déja présente, cela la supprime du todo.

Appuyez sur ECHAP pour quitter.

Exemple en image :

Le script :

#!/bin/sh
# Script pour gérer les différentes tâches à faire
# avec simplement dmenu.
# dmenu est un tout petit utilitaire, présent dans le paquet dwm-tools. 

. ~/.dmenurc
##Le fichier utilisé pour enregistrer nos pense-bêtes
FILE=~/Documents/notes/todo.md
##Cette varialbe définit la hauteur de dmenu : 
#HEIGHT=8
HEIGHT=$(wc -l $FILE |cut -d' ' -f1)
PROMPT="Ajouter/Supprimer une tâche"

#Et c'est parti!
ACTION="cat $FILE | dmenu -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -l '$HEIGHT' -p '$PROMPT:' "
CMD=$(eval $ACTION)
while [ -n "$CMD" ]; do
	grep -q "^$CMD" $FILE
	if [ $? = 0 ]; then
		grep -v "^$CMD" $FILE > /tmp/todo
		mv /tmp/todo $FILE
        HEIGHT=$(($HEIGHT-1))
        ACTION="cat $FILE | dmenu -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -l '$HEIGHT' -p '$PROMPT:' "
	else
		echo "$CMD" >> $FILE
        HEIGHT=$(($HEIGHT+1))
        ACTION="cat $FILE | dmenu -nb '$NB' -nf '$NF' -sb '$SB' -sf '$SF' -l '$HEIGHT' -p '$PROMPT:' "
	fi
	
	CMD=$(eval $ACTION)
done

exit 0