A framework for daily/weekly reviews.
(use-package! el-secretario-org
:after (el-secretario org-ql))
(use-package! el-secretario-notmuch
:after (el-secretario))
(use-package! el-secretario
:after (hydra)
(defun my/dailyreview-secretary ()
(list
;; First take care of email
(el-secretario-notmuch-make-source "tag:lists/emacs-orgmode")
;; Then Take care of inbox
(el-secretario-org-make-source nil ("~/org/Inbox.org"))
;; Check if any waiting items are done
(el-secretario-org-make-source (todo "WAITING") ("~/org/orgzly/Todo.org"))
;; Go through TODOs
(el-secretario-org-make-source (todo "TODO") ("~/org/orgzly/Todo.org"))))
;; Create a function to start the review
(defun el-secretario-daily-review ()
(interactive)
(el-secretario-start-session (my/dailyreview-secretary)))
:commands (el-secretario-daily-review))
- A function that is called when initializing a source
- A function for going to the next review item, e.g. next email or nest todo
- A function for going back one review item
- A hydra for actions to do on an item
- A function that is called when a source is finished
- A function that is called when arriving at the next item
Main entry point is el-secretario-tasks-choose-task
. See it’s docstring for more info.
When you choose to begin FOO or baz the default begin hook will run, but
when you start bar the secretary will run (insert "foobar")
at the beginning
of the headline. When you finish baz the secretary also will run (insert
"foobar")
at the beginning of the headline.
* DONE FOO
:PROPERTIES:
:EL-SECRETARIO-PRIORITY: 74
:END:
* bar
:PROPERTIES:
:EL-SECRETARIO-PRIORITY: 85
:EL-SECRETARIO-BEGIN-TASK-HOOK: (insert "foobar")
:END:
* DONE baz
:PROPERTIES:
:EL-SECRETARIO-PRIORITY: 106
:EL-SECRETARIO-FINISH-TASK-HOOK: (insert "foobar")
:END:
I am currently trying out sourcehut so please send any contributions to https://git.sr.ht/~zetagon/el-secretario if you can.
There’s probably not much to do right now because I’m still figuring things out. The most helpful thing you can do right now is probably to test this out and point out any deficiencies in documentation or design.
It would be very nice to have a mascot for the project though, so I would be very happy if you would contribute with a nice drawing.
I still don’t know how to properly load things in an Emacs package, if you know how to properly split parts of this package into separate modules so that the user can choose which parts they want to load, feel more than free to submit a pull request. In the meantime I will not prioritize this and just load everything when the main module is loaded.