J'ai donc finalement décidé d'ouvrir le manuel emacs lisp et de le comprendre moi-même. J'ai écrit ce morceau de code, qui semble fonctionner très bien! :)
;; Save the org-agenda for display with conky
(defadvice org-todo-list (after saveorgagenda activate)
"save this output to my todo file"
(get-buffer-create "todo")
(with-current-buffer "todo"
(set-buffer-modified-p nil))
(kill-buffer "todo")
(write-file "~/todo"))
EDIT RAISONS:
1) Sans kill-buffer, le defadvice crée un nouveau tampon de todo à chaque exécution de liste org-todo. Cela devient assez irritant.
2) Sans la fonction get-buffer-create, kill-buffers échoue la première fois car il n'y a pas de tampon nommé todo à ce moment-là.
3) Sans set-buffer-modified-p, la fonction continuera de vous dire "todo buffer est modifié, le tuer vraiment? (Y ou n)" ce qui irait vraiment à l'encontre du but recherché.
Ouf! Je suis tellement heureux que j'ai pris le temps et l'effort de comprendre cela! : D
merci. J'ai écrit quelque chose de similaire il y a quelque temps (une modification par rapport au code écrit ci-dessous), mais c'est mieux. – vedang